web-dev-qa-db-ja.com

WindowsからLinuxサーバーへの公開鍵認証の設定(ppk秘密鍵)

PuTTYgenを使用して公開鍵と秘密鍵を作成し、公開鍵を自分のユーザーアカウントの.ssh/authorized_keysにコピーしました。

次に、ログイン時に秘密鍵を指定しようとしましたが、どうやらそれを取得できず、元々持っていたユーザー名/パスワードを要求し続けます。 WinSCPを使用して接続し、[詳細設定]/[認証]セクションで秘密キーを指定しています。 WinSCPのステップが欠けていますか?

enter image description here

authorized_keysの内容は次のようになります

ssh-rsa AAAAB3NzaC1yc2EAAAABpEVSiiRXi7tOHpkOyFa9w2OLpBep31k9lePCK7RQxsdfs9u11+rdu0XCidRKOY5j4anD1eDaNBj87wqZbsreRe5cFcsakyGUAYXAvqgGApvsep31k9lePCK7RQxlOY5j4anD1eDaNBj8LJO++K3SkUN8E0srRBO8YyMT6Y03/F7+AAAAB3NzaC1yc2Q4h2RLGtr12CDKSBVAnFEc+JucuF4uF0WY4Sh66MSFI63mCQFu9iYNYwWyT6lUo6sks4WypEVSiiRXi7tOHpkOyFa9w2OLpBzAlTA/VSQwdNTFYUI1vquaufZ9ORzTa6dkbBRo/mLVdevYSRMSDw1BUcinYz/ogdxRvw==

権限を.sshから700に、authorized_keysを600に変更します。

WinSCPの認証セクションに移動し、(スクリーンショットに示すように)秘密鍵を指定しますが、それでもユーザー名とパスワードが必要であり、取得できません。


PuTTYを使用して秘密鍵を指定すると、ログインユーザー名を入力した後、

サーバーがキーを拒否しました

ここにPuTTYからのログがあります

2018-04-28 17:43:05 Connecting to 158.85.98.202 port 22
2018-04-28 17:43:05 We claim version: SSH-2.0-PuTTY_Release_0.70
2018-04-28 17:43:05 Server version: SSH-2.0-OpenSSH_7.4
2018-04-28 17:43:05 Using SSH protocol version 2
2018-04-28 17:43:05 Doing ECDH key exchange with curve Curve25519 and hash  SHA-256
2018-04-28 17:43:05 Server also has ecdsa-sha2-nistp256 Host key, but we don't know it
2018-04-28 17:43:05 Host key fingerprint is:
2018-04-28 17:43:05 ssh-ed25519 256         6b:0d:e2:f6:c5:9e:15:84:0c:1b:2c:19:62:cd:5b:ef
2018-04-28 17:43:05 Initialised AES-256 SDCTR client->server encryption
2018-04-28 17:43:05 Initialised HMAC-SHA-256 client->server MAC algorithm
2018-04-28 17:43:05 Initialised AES-256 SDCTR server->client encryption
2018-04-28 17:43:05 Initialised HMAC-SHA-256 server->client MAC algorithm
2018-04-28 17:43:05 Reading key file "C:\Users\\Desktop\private_key.ppk"
2018-04-28 17:43:09 Offered public key
2018-04-28 17:43:09 Server refused our key
2018-04-28 17:43:09 Using SSPI from SECUR32.DLL
2018-04-28 17:43:09 Attempting GSSAPI authentication
2018-04-28 17:43:09 GSSAPI authentication request refused
3
HHH

公開鍵認証を設定する際の一般的な落とし穴を回避するには、 ssh-copy-id command/script を使用します。 Windowsで実行すると問題が発生するため、サーバー自体で実行できます。

  • PuTTYgenで、秘密鍵(.ppk)をロードします。
  • ボックスの内容公開キーをOpenSSHのauthorized_keysファイルに貼り付けてクリップボードにコピーします。
  • それをお気に入りのエディターに貼り付けます(Windowsのメモ帳でできます)。
  • 内容を.pub拡張子の付いたファイルに保存します。
  • .pubファイルをサーバーにアップロードします。
  • PuTTYなどのSSHクライアントを使用してサーバーにログインします。
  • サーバータイプ:

    ssh-copy-id -i mykey.pub username@localhost
    

これを手動で実行したくない場合は、 WinSCP 5.15を使用できます。公開鍵認証を設定できます。
Tools> Install Public Key into Serverbutton on SSH> Authentication page of WinSCP Advanced Site Settingsダイアログ

enter image description here

(WinSCPの作成者です)


さらに別の代替手段は、ssh-copy-idスクリプトです。 Windowsでは、Git for Windowsが付属しています。そのため、ローカルにあれば、ローカルで使用できます。

4
Martin Prikryl