私は通常リモートサーバーに接続しています
ssh user@server.com -p 11000
そして、ユーザーに毎回パスワードを与えます。sshを使用して接続するたびにパスワードを入力しないようにするにはどうすればよいですか?
私は通常リモートサーバーに接続しています
ssh user@server.com -p 11000
そして、ユーザーに毎回パスワードを与えます。sshを使用して接続するたびにパスワードを入力しないようにするにはどうすればよいですか?
回答:
まず、これを次の場所に配置し~/.ssh/config
ます。
Host server
HostName server.com
Port 11000
User user
できるようになりssh server
、パスワードを入力します。
次に、と~/.ssh/
という名前のファイルがあるかどうかを確認します。そうでない場合は、キーが設定されていないため、を使用してペアを生成する必要があります。キーにパスワードを与えることも、与えないこともできます。生成されたファイルは次のようになります。id_rsa
id_rsa.pub
ssh-keygen
id_rsa.pub
ssh-rsa lotsofrandomtext user @ local
3番目に、サーバーにsshし、ファイル~/.ssh/authorized_keys
が存在しない場合は作成します。次に、~/.ssh/id_rsa.pub
ここで前に生成したコンテンツを追加します。これは、ファイルの内容をクリップボードにコピー~/.ssh/authorized_keys
し、テキストエディターで開いて貼り付けることを意味する場合があります。
または、コマンドを使用しますssh-copy-id server
(server
の名前に置き換え~/.ssh/config
ます)。これは上記と同じことを行います。時々私はssh-copy-id
立ち往生しているのを見たので、私はそれが本当に好きではありません。
これssh server
で、パスフレーズで秘密鍵を保護することを選択しない限り、ちょうどでsshできるようになります。一般に、パスフレーズを使用しない場合は、他の方法(フルディスク暗号化など)で秘密キーを保護する必要があります。
4番目(パスフレーズで秘密鍵を保護する場合にのみ必要)、これを以下に入力し~/.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
これにより、コンピューターのブートごとにパスフレーズを1回入力するだけで済みます。
User user
行を追加できます~/.ssh/config
。
ターンキーベースの認証。
ssh -P 11000
phuneheheの答えの補足として、参照のGentoo Linuxのキーチェーンガイドのガイドのためのキーチェーン。キーチェーンもssh-agentを使用します。ssh-agentデーモンはパスフレーズを使用可能にします(ssh-agentデーモンが終了すると使用不可になります)がreuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
、ガイドを引用するためにkeychain を使用します。