私は通常リモートサーバーに接続しています
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_rsaid_rsa.pubssh-keygenid_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 を使用します。