NAS公開鍵を使用してWebサーバーにSSHで接続しようとしています。NASユーザーは 'root'で、Webサーバーユーザーは 'backup'です
すべての権限を正しく設定していて、SSH接続をデバッグすると、次のようになります(デバッグの最後の少し)。
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':
私は次のコマンドを使用しています:
ssh -v -i /root/.ssh/id_dsa.pub [email protected]
パスフレーズを要求しているという事実は確かに良い兆候ですが、これまたはパスワード(パスフレーズで[Return]を押すと後で表示されます)を要求したくない
これは、私が持っていた秘密鍵がOpenSSH形式ではないときに起こりました。
私は元々、PuttyGenを使用してWindowsでキーを生成しましたが、これと同じことでバウンスされていました。
PuttyGenにキーをロードし、[変換]をクリックしてOpenSSH形式に変換することで修正できました。
鍵自体は暗号化されているので、次の手順に従いました。
$ ssh-agent bash
$ ssh-add
$ ssh-add /location/of/key
いつでも検査するには、現在ロードされているキーのリスト:
$ ssh-add -l
詳細はこちらから入手できます link
いくつかあります。
主に、KEYがパスワードを要求する場合、キーはそれを使用して生成されました。次に、システムがパスワードの入力を求めている場合、キーは認証されていません。つまり、SSHキーを再生成(または@rbtuxの提案に従って変更)して、authorized_keysファイルを修正する必要があります。
ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C「オプションのコメント」-f id_examplekey
中括弧内の項目は、オプション、タイプ、およびビットサイズです(明白に述べると、「セキュリティ」に関しては、dsa> rsa、4096> 1024)。
次に、公開鍵(.pub)をauthorized_keys
およびauthorized_keys2
ファイルに追加する必要があります(.pubがローカルで使用されると誤解されがちですが、比較対象です)したがって、サーバーの.ssh
フォルダにあります。
$ cat id_examplekey.pub >> authorized_keys {、2}
次に、キーの権限がchmod 600 id_example
であることを確認し、すべての入力を軽減するために、構成ファイル~/.ssh/config
をローカルボックスに設定できます(スケルトンです。これをカスタマイズしてください):
Host example.com
User WHATEVERNAME
IdentityFile ~/.ssh/id_examplekey
試してみてください https://wiki.gentoo.org/wiki/Keychain
ssh-agent
とssh-add
のラップのようなものです
メリット:再起動しない限り、パスワードを繰り返し入力する必要はありません。 crontab
で使用できます。
それは助けになるかもしれません。
OpenSSH v7ではデフォルトで無効になっているDSA公開鍵を使用していることが原因である可能性があります。
キーペアを変更できない場合の回避策として、/etc/ssh/sshd_config
を更新するか、次の行を追加して同等のキータイプを受け入れることで、webserver.comのSSHデーモンにそれらのキータイプを受け入れるように指示することができます。
PubkeyAcceptedKeyTypes=+ssh-dss
そして、サービスを再起動します
/etc/init.d/ssh restart # or equivalent
Mac OSXでは、次のコマンドを使用して秘密鍵をキーチェーンに追加できます。
ssh-add -K /path/to/private_key
秘密鍵が〜/ .sshに保存され、id_rsaという名前の場合:
ssh-add -K ~/.ssh/id_rsa
次に、キーチェーンに保存されるパスワードの入力を求められます。