リモートサーバーへのSSHクライアント接続を確立するためのより効率的なアプローチを取ろうとします。公開鍵と秘密鍵のペアを作成し、それを使用してリモートssh-copy-id
サーバーに公開鍵をインストールしました。
しかし、ssh -i ~/.ssh/mykey user@host
公開鍵認証でパスワードをバイパスするには、パスワードを入力する必要がありますか?
この問題を解決するために、このパスを使用して.bashrc
エイリアスを作成しました。しかし、これは可能な方法ですか?それとも、一般的な鍵を使用できるように公開鍵を許可するサーバーの問題ですかssh user@host
?
答え1
鍵ペア認証が正常に利用可能な場合は、ssh -i ~/.ssh/mykey user@host
SSHクライアント構成を使用して簡単に自動化できます。
たとえば、次をファイルに追加すると、次のようになります~/.ssh/config
。
Host hostname
User username
IdentityFile ~/.ssh/mykey
IdentitiesOnly yes # see comment in answer below
続行すると、ssh hostname
ユーザー名とIDファイルの設定はファイルによって処理され、config
彼らが言うように競う準備が整いました。
このIdentityFile
ディレクティブ(オーバーライドされた-i
スイッチ)には、およびssh
を見つけるためのデフォルト設定があり、秘密鍵の別のファイル名はファイルまたはコマンドラインで指定する必要があります。~/.ssh/id_dsa
~/.ssh/id_ecdsa
~/.ssh/id_ed25519
~/.ssh/id_rsa
config
-i
SSH設定に追加すると、IdentityFile
クライアントがまだ主キーを送信していることがわかります(ssh -vv
出力を参照)。複数のアカウントでgithubなどのサイトを使用すると問題になる可能性があります。IdentitiesOnly yes
SSHが指定したキーのみを使用するには、そのキーを含める必要があります。