我想从机器“ub0”到另一台机器“ub1”进行 ssh,而无需使用密码。我在“ub0”上使用 nfs 进行设置,但仍然要求我输入密码。
以下是我的情况:
- 机器 ub0 和 ub1 有相同的用户“mpiu”,具有相同的密码、相同的用户 ID 和相同的组 ID
- 两台服务器共享一个文件夹,该文件夹是“mpiu”的主目录
- 我在 .ssh 上执行了 chmod 700
- 我使用 ssh-keygene -t dsa 创建了一个密钥
- 我执行了“cat id_dsa.pub >> authorized_keys”。在最后一个文件上,我还尝试了 chmod 600 和 chmod 640
- 当然,我可以保证在机器 ub1 上,用户“shared_user”可以看到我们安装的相同文件,没有任何问题。
以下是我的 .ssh 文件夹的内容
授权密钥 id_dsa id_dsa.pub 已知主机
完成所有这些调用后,系统会要求我输入密码。你知道我可以尝试什么吗?
我还在两台机器的 ssh_config 文件中取消注释了此行
身份文件 ~/.ssh/id_dsa
我也试过
ssh -i $HOME/.ssh/id_dsa mpiu@ub1
下面 ssh -vv
代码: OpenSSH_5.1p1 Debian-3ubuntu1,OpenSSL 0.9.8g 2007 年 10 月 19 日 OpenSSH_5.1p1 Debian-3ubuntu1,OpenSSL 0.9.8g 2007 年 10 月 19 日 debug1:读取配置数据 /etc/ssh/ssh_config debug1:应用选项 * 调试2:ssh_connect:needpriv 0 debug1:连接到ub1 [192.168.2.9]端口22。 debug1:连接已建立。 debug2:key_type_from_name:未知密钥类型'-----BEGIN' debug2:key_type_from_name:未知密钥类型‘-----END’ debug1:身份文件/mirror/mpiu/.ssh/id_dsa 类型 2 debug1:检查黑名单文件 /usr/share/ssh/blacklist.DSA-1024 debug1:检查黑名单文件 /etc/ssh/blacklist.DSA-1024 debug1:远程协议版本2.0,远程软件版本lshd-2.0.4 lsh - GNU ssh debug1:无匹配:lshd-2.0.4 lsh - GNU ssh debug1:启用协议 2.0 的兼容模式 debug1:本地版本字符串 SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1 debug2:fd 3 设置 O_NONBLOCK debug1:SSH2_MSG_KEXINIT 已发送 debug1: 收到 SSH2_MSG_KEXINIT 调试2:kex_parse_kexinit:diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 调试2:kex_parse_kexinit:ssh-rsa,ssh-dss 调试2:kex_parse_kexinit:aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[电子邮件保护],aes128-ctr,aes192-ctr,aes256-ctr 调试2:kex_parse_kexinit:aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[电子邮件保护],aes128-ctr,aes192-ctr,aes256-ctr 调试2:kex_parse_kexinit:hmac-md5,hmac-sha1,[电子邮件保护],hmac-ripemd160,[电子邮件保护],hmac-sha1-96,hmac-md5-96 调试2:kex_parse_kexinit:hmac-md5,hmac-sha1,[电子邮件保护],hmac-ripemd160,[电子邮件保护],hmac-sha1-96,hmac-md5-96 调试2:kex_parse_kexinit:无,[电子邮件保护],zlib 调试2:kex_parse_kexinit:无,[电子邮件保护],zlib 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit:first_kex_follows 0 调试2:kex_parse_kexinit:保留0 调试2:kex_parse_kexinit:diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 调试2:kex_parse_kexinit:ssh-rsa,spki-sign-rsa 调试2:kex_parse_kexinit:aes256-cbc,3des-cbc,blowfish-cbc,arcfour 调试2:kex_parse_kexinit:aes256-cbc,3des-cbc,blowfish-cbc,arcfour 调试2:kex_parse_kexinit:hmac-sha1,hmac-md5 调试2:kex_parse_kexinit:hmac-sha1,hmac-md5 调试2:kex_parse_kexinit:无,zlib 调试2:kex_parse_kexinit:无,zlib 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit:first_kex_follows 0 调试2:kex_parse_kexinit:保留0 debug2:mac_setup:发现 hmac-md5 调试1:kex:服务器->客户端3des-cbc hmac-md5无 debug2:mac_setup:发现 hmac-md5 调试1:kex:客户端->服务器3des-cbc hmac-md5无 debug2:dh_gen_key:私钥位设置:183/384 debug2:位设置:1028/2048 debug1:发送 SSH2_MSG_KEXDH_INIT debug1:期待 SSH2_MSG_KEXDH_REPLY debug1:主机“ub1”已知并且与 RSA 主机密钥匹配。 debug1:在 /mirror/mpiu/.ssh/known_hosts:1 中找到密钥 debug2:位设置:1039/2048 debug1: ssh_rsa_verify: 签名正确 调试2:kex_derive_keys debug2: set_newkeys: 模式 1 debug1: SSH2_MSG_NEWKEYS 已发送 debug1:期望 SSH2_MSG_NEWKEYS debug2:set_newkeys:模式 0 debug1: 已收到 SSH2_MSG_NEWKEYS debug1: SSH2_MSG_SERVICE_REQUEST 已发送 调试2:service_accept:ssh-userauth debug1: 已收到 SSH2_MSG_SERVICE_ACCEPT debug2:密钥:/mirror/mpiu/.ssh/id_dsa (0xb874b098) debug1:可以继续的认证:密码,公钥 debug1:下一个认证方法:publickey debug1:提供公钥:/mirror/mpiu/.ssh/id_dsa debug2:我们发送了一个公钥包,等待回复 debug1:可以继续的认证:密码,公钥 debug2:我们没有发送数据包,禁用方法 debug1:下一个身份验证方法:密码 mpiu@ub1 的密码:
我挂在这里!
答案1
您的 ssh 客户端正在尝试在公钥认证之前进行密码认证。
检查您的~/.ssh/config
和/etc/ssh/ssh_config
文件中是否有PreferredAuthentications
条目。
如果我将以下条目添加到我的~/.ssh/config
文件中,我会看到类似的行为:
PreferredAuthentications password,publickey
如果上述任一文件中有类似的内容,请将其注释掉。