HHH*_*HHH 3 linux ssh ssh-keys winscp
我使用 PuTTYgen 创建了公钥和私钥,并将公钥复制到.ssh/authorized_keys
我的用户帐户下。
然后我尝试在尝试登录时指定私钥,但显然它没有选择它并继续询问我最初拥有的用户名/密码。我正在使用 WinSCP 进行连接并在“高级/身份验证”部分中指定私钥。我是否遗漏了 WinSCP 中的任何步骤?
内容authorized_keys
如下所示
ssh-rsa AAAAB3NzaC1yc2EAAAABpEVSiiRXi7tOHpkOyFa9w2OLpBep31k9lePCK7RQxsdfs9u11+rdu0XCidRKOY5j4anD1eDaNBj87wqZbsreRe5cFcsakyGUAYXAvqgGApvsep31k9lePCK7RQxlOY5j4anD1eDaNBj8LJO++K3SkUN8E0srRBO8YyMT6Y03/F7+AAAAB3NzaC1yc2Q4h2RLGtr12CDKSBVAnFEc+JucuF4uF0WY4Sh66MSFI63mCQFu9iYNYwWyT6lUo6sks4WypEVSiiRXi7tOHpkOyFa9w2OLpBzAlTA/VSQwdNTFYUI1vquaufZ9ORzTa6dkbBRo/mLVdevYSRMSDw1BUcinYz/ogdxRvw==
Run Code Online (Sandbox Code Playgroud)
我将权限更改为.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
Run Code Online (Sandbox Code Playgroud)
为了避免设置公钥身份验证时的常见陷阱,请使用ssh-copy-id
command/script。由于在 Windows 上运行它会遇到麻烦,因此您可以在服务器本身上运行它。
在 PuTTYgen 中,加载您的私钥 (.ppk);
将用于粘贴到 OpenSSHauthorized_keys 文件中的公钥框的内容复制到剪贴板。
将其粘贴到您最喜欢的编辑器中(Windows 记事本即可)。
将内容保存到带有.pub
扩展名的文件中。
将.pub
文件上传到服务器。
使用 SSH 客户端(例如 PuTTY)登录服务器。
在服务器上输入:
ssh-copy-id -i mykey.pub username@localhost
Run Code Online (Sandbox Code Playgroud)
如果您不想手动执行此操作,可以使用WinSCP。它可以为您设置公钥身份验证。
使用WinSCP 高级站点设置对话框的SSH > 身份验证页面上的工具 > 将公钥安装到服务器中按钮。
(我是WinSCP的作者)
另一种选择是ssh-copy-id
脚本。在 Windows 上,它附带了适用于 Windows 的 Git。因此,如果有的话,您可以在本地使用它。
归档时间: |
|
查看次数: |
10910 次 |
最近记录: |