私は通常、次のようにリモートサーバーに接続します。
SSH[Eメール保護]-p 11000
その後、毎回ユーザーにパスワードを入力します。 SSHを使用して接続するたびにパスワードを入力したくない場合はどうすればよいですか?
答え1
最初、これを入れて~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
ssh server
その後、パスワードを入力できます。
第二、名前、およびファイルが~/.ssh/
あることを確認してください。それ以外の場合はキーが設定されていないため、generate a pairを使用する必要があります。キーのパスワードを設定したり、パスワードを設定したくない場合があります。生成されたファイルは次のようになります。id_rsa
id_rsa.pub
ssh-keygen
id_rsa.pub
ssh-rsa 任意のテキストがたくさんある user@local
第三、サーバーにSSH経由で接続し、~/.ssh/authorized_keys
ファイルが存在しない場合はファイルを生成します。次に、前に作成したコンテンツを~/.ssh/id_rsa.pub
ここに追加します。これは、ファイルの内容をクリップボードにコピーし、テキスト~/.ssh/authorized_keys
エディタで開き、内容を貼り付けることを意味します。
またはコマンドを使用してくださいssh-copy-id server
(server
の名前に置き換えてください~/.ssh/config
)。これは上記と同じことを行います。時々ssh-copy-id
詰まっているのを見ることができてあまり気に入らないですね。
ssh server
秘密鍵をパスワードで保護することを選択しない限り、sshを使用できます。通常、パスワードを使用しない場合は、ディスク全体の暗号化などの他の手段で秘密鍵を保護する必要があります。
第四(秘密鍵をパスワードで保護する場合のみ必要)これを入れて~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
これにより、コンピュータを起動するたびにパスワードを一度だけ入力できます。
答え2
移動キーベース認証。
答え3
phuneheheの回答に加えて、以下を参照してください。Gentoo Linuxキーチェーンガイドガイドを入手キーホルダー。キーチェーンも使用SSHエージェント。 ssh-agentデーモンはパスワードを使用できますが(ssh-agentデーモンが終了すると使用できなくなります)、ガイドを引用するとreuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
キーチェーンは使用できません。