关于linux的SSH 无密码访问,按照网上攻略设置后的问题

比如A和B机子链接,A机子建立公钥还是B机子建立公钥,还有将ssh-keygen创立的id_rsa.pub覆盖到哪个机子的authortized_keys里?为什么我经过设置后链接依旧要输入密码,下图是我ssh -v后的登陆过程信息

A机创建密钥

ssh-keygen -t rsa

将A机的密钥拷贝到B机器上

scp /root/.ssh/id_rsa.pub B_ip:/root/.ssh/authorized_keys2

输入密码后,拷贝完毕。

B机创建密钥

ssh-keygen -t rsa

将B机的密钥拷贝到文件中

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2

将密钥文件再拷贝到A机器上

scp /root/.ssh/authorized_keys2 A_ip:/root/.ssh/authorized_keys2

追问

我照着步骤一步不差  还是需要密码访问,我重启ssh 服务时候出现这个

追答

服务名字是 sshd 不是ssh。
如果照做还不行,可以尝试将/root/.ssh/known_hosts文件删除,再将密钥删除,重新再做一次。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-04
转网络上关于ssh无秘密登陆相关资料:

ssh配置  

主机A:10.0.5.199

主机B:10.0.5.198

需要配置主机A无密码登录主机A,主机B

先确保所有主机的防火墙处于关闭状态。

在主机A上执行如下:

 1. $cd ~/.ssh

 2. $ssh-keygen -t rsa --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中。

 3. $cp id_rsa.pub authorized_keys

这步完成后,正常情况下就可以无密码登录本机了,即ssh localhost,无需输入密码。

 4. $scp authorized_keys summer@10.0.5.198:/home/summer/.ssh ------把刚刚产生的authorized_keys文件拷一份到主机B上.  

 5. $chmod 600 authorized_keys

   进入主机B的.ssh目录,改变authorized_keys文件的许可权限。

   (4和5可以合成一步,执行: $ssh-copy-id -i summer@10.0.5.198 )

正常情况下上面几步执行完成后,从主机A所在机器向主机A、主机B所在机器发起ssh连接,只有在第一次登录时需要输入密码,以后则不需要。

可能遇到的问题:

1.进行ssh登录时,出现:”Agent admitted failure to sign using the key“ .

执行: $ssh-add

强行将私钥 加进来。

2.如果无任何错误提示,可以输密码登录,但就是不能无密码登录,在被连接的主机上(如A向B发起ssh连接,则在B上)执行以下几步:

  $chmod o-w ~/

$chmod 700 ~/.ssh

$chmod 600 ~/.ssh/authorized_keys

3.如果执行了第2步,还是不能无密码登录,再试试下面几个

  $ps -Af | grep agent

检查ssh代理是否开启,如果有开启的话,kill掉该代理,然后执行下面,重新打开一个ssh代理,如果没有开启,直接执行下面:

$ssh-agent

  还是不行的话,执行下面,重启一下ssh服务

$sudo service sshd restart

4. 执行ssh-add时提示“Could not open a connection to your authenticationh agent”而失败

执行: ssh-agent bash追问

执行重启动ssh服务时候出现这个,该怎么办

追答

手动重启:
/etc/init.d/sshd restart

或者
/etc/rc.d/init.d/sshd restart

如果sshd不在/etc/init.d/或者/etc/rc.d/init.d/下,搜索sshd:
find / -name sshd

第2个回答  2014-08-04
试试用这个脚本设置:

#!/bin/sh
#
# the ip address for remote server is needed as the only parameter.
# 1. if needed, create local ~/.ssh/id_dsa.pub
# 2. append id_dsa.pub to remote authorized_keys&authorized_key2
#
SERVER_IPADDR=$1
LOCAL_SSH_FILE="id_dsa.pub"
if [ "" = "$SERVER_IPADDR" ]
then
echo "please give the ip address of server controlled..."
exit 1
fi
cd ~/.ssh/
if [ -f "$LOCAL_SSH_FILE" ]
then
echo "key file of ssh dsa has been created already"
else
echo "start to create local $LOCAL_SSH_FILE"
ssh-keygen -t dsa
fi

ssh $SERVER_IPADDR mkdir ~/.ssh/
scp root@$SERVER_IPADDR:~/.ssh/authorized_keys ~/.ssh/temp
cat ~/.ssh/id_dsa.pub >> ~/.ssh/temp
scp ~/.ssh/temp root@$SERVER_IPADDR:~/.ssh/authorized_keys
scp ~/.ssh/temp root@$SERVER_IPADDR:~/.ssh/authorized_keys2
rm ~/.ssh/temp

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网