没有密码的CentOS scp无法正常工作

时间:2011-03-09 20:25:56

标签: ssh amazon-web-services amazon-ec2 centos public-key

我一直在尝试使用ssh公钥从一个 EC2实例连接到另一个并且一直非常艰难。

以下是该方案: 我需要在脚本中从方框1中获取box 2 scp文件。该脚本需要能够在没有密码的情况下进行scp,因此我需要设置公钥。

在方框2上,我运行了ssh-keygen –t rsa并生成了id_rsaid_rsa.pub 我将id_rsa.pub复制到了方框1 我已将id_rsa.pub移至.ssh并运行cat id_rsa.pug >> authorized_keys 我将所有.ssh目录的权限更改为两个框中的 700 ,并将文件本身更改为 600 。 我已将框1上的sshd_config设置更改为:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

然后重新启动ssh

/sbin/service sshd restart

当我尝试从box1 scp或ssh到box1时,我收到错误:

Address 67.22.33.1 maps to ec2-67-22-33-1.compute-1.amazonaws.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
tomcat@tomcat1.****.com's password:

有什么想法吗?


我做了那个改变并尝试了scp到tomcat1但它失败了。这是输出:

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to tomcat1.****.com [67.22.33.15] port 22.
debug1: Connection established.
debug1: identity file /home/tomcat/.ssh/identity type -1
debug1: identity file /home/tomcat/.ssh/id_rsa type 1
debug1: identity file /home/tomcat/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
The authenticity of host 'tomcat1.****.com (67.22.33.15)' can't be established.
RSA key fingerprint is 5a:3e:fe:be:b8:0e:05:63:bf:ab:c8:4f:e5:91:db:a0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tomcat1.****.com,67.22.33.15' (RSA) to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/tomcat/.ssh/identity
debug1: Offering public key: /home/tomcat/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/tomcat/.ssh/id_dsa
debug1: Next authentication method: password

7 个答案:

答案 0 :(得分:1)

您的授权密钥行应

AuthorizedKeysFile     %h/.ssh/authorized_keys

服务器正在查找服务器的错误目录。

答案 1 :(得分:1)

更新 - 修复

restorecon -R -v -d /root/.ssh

这是RH的一个已知问题,其中目录被错误标记,并且PAM在作为init脚本运行时预先读取sshd来读取authorized_hosts。如果您偶然发现/var/log/audit/audit.log,您会看到错误。看起来很罕见但发生时很痛苦!

https://bugzilla.redhat.com/show_bug.cgi?id=499343

的更多详情

原始帖子

我刚刚看到了这个问题。我有一个调整不好的VirtualBox(我没有告诉vbox使用64位) - 当我克隆并重新启动时(在vbox RedHat 64位模式下),开始向我询问密码。

原始图片很好 - 设置相同 - 所以我认为与网络相关的建议可能是相关的,或者与服务器密钥有关。

然而,奇怪的是,如果在盒子上,我杀死自动启动的sshd进程,然后以root身份手动运行/ usr / sbin / sshd,我可以登录无密码。 愚蠢的解决方法,但可以使用。

所以这是一个/etc/init.d/sshd问题。但是我无法追踪它是什么...尝试删除该脚本中的大部分内容但是在/etc/init.d/sshd start调用时仍然提示输入密码,但在/usr/sbin/sshd时却没有

也许这些评论可以提供帮助,然后有人可以进一步提供帮助!?

答案 2 :(得分:0)

尝试从〜/ .ssh / known_hosts中删除box1 IP,以便更新。也许ssh禁用密钥认证,因为可能是“中间人”攻击。

如果没用,请添加一行 GSSAPIAuthentication no 在/ etc / ssh / ssh_config文件中。

答案 3 :(得分:0)

我认为此链接将解决您的问题,我用它来解决我的ssh not login问题。关键点是运行 ssh root @ node02'recoverycon -R -v /root/.ssh' 这个命令将修复SE http://blog.firedaemon.com/2011/07/27/passwordless-root-ssh-public-key-authentication-on-centos-6/

答案 4 :(得分:0)

执行完之前的步骤后,我必须在.ssh文件夹中将权限设置为“..”:

一旦我有〜/ .ssh:

drwx ------ 2 build build 4096 Nov 4 14:35。

drwx ------ 6 build build 4096 Nov 4 14:34 ..

-rw ------- 1 build build 400 Nov 4 14:35 authorized_keys

有效!

感谢。达米安

答案 5 :(得分:0)

我遇到了完全相同的问题,一整个下午都在摸不着头脑。 结果是一个小的sshd_config文件问题。

首先,将远程主机的 .ssh 文件夹中的访问模式更改为仅用户访问权限。

chmod 700 ~/.ssh

接下来,转到/ etc / ssh / sshd_config,将StrictModes yes更改为StrictModes no。如果已将其注释掉,请专门将StrictModes no添加到文件中。

解决了这个问题。

答案 6 :(得分:0)

我刚发现的另一件事是,我必须编辑.ssh / authorized_keys文件并使主机名完全合格。否则,我无法在scp / ssh命令中使用完全限定名称。现在两个人都完全合格(例如&#34; host.company.com&#34;)&amp;相对名称(&#34; host&#34;)工作,因为两个主机都在&#34; company.com&#34;域。 ssh-keygen只使用主机名创建了公钥文件。