比如A和B机子链接,A机子建立公钥还是B机子建立公钥,还有将ssh-keygen创立的id_rsa.pub覆盖到哪个机子的authortized_keys里?为什么我经过设置后链接依旧要输入密码,下图是我ssh -v后的登陆过程信息
A机创建密钥
将A机的密钥拷贝到B机器上
输入密码后,拷贝完毕。
B机创建密钥
将B机的密钥拷贝到文件中
将密钥文件再拷贝到A机器上
我照着步骤一步不差 还是需要密码访问,我重启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配置
主机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
#!/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