shellshell编程shell

ssl 无密登录

2016-06-02  本文已影响133人  iOneWay

ssh无密码登录需要使用公钥和私钥
例如: 用户从A机器通过终端登录B机器192.168.1.181

1、命令行终端:

1, 生成密钥对

ssh-keygen -t rsa -P ''

-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P只需要一次回车。
3,设置私钥权限

chmod 600 id_rsa

2, 把A机器下的id_rsa.pub拷贝到B机器的用户目录下

scp .ssh/id_rsa.pub wangwei@192.168.1.181:/home/wangwei/id_rsa.pub 

3, 使用密码登录到B机器,并将公钥拷贝到文件~/.ssh/authorzied_keys中

#登录到B机器
ssh wangwei@@192.168.1.181
#输入登录密码
cd ~/.ssh
#导入公钥内容到authorzied_keys
cat id_rsa.pub >> .ssh/authorzied_keys
#设置权限
chmod 600 authorized_keys

authorized_keys的权限必须要是600

此时A机器可以无密码登录B机器了

ssh wangwei@192.168.1.181

2、shell脚本中:

一般情况下,在A机器中的脚本中我门登录到B机器后需要做一系列的操作然后退出返回到A机器进行其它操作时会用到

ssh -i ~/.ssh/id_rsa root@$server <<!
#登录B机器后的操作,此时会阻塞,直到退出B机器后才会进行A机器其它操作
exit
!
#退出后返回A机器后其它操作

常见错误

Permissions 0644 for '/root/.ssh/id_dsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /root/.ssh/id_dsa
Permission denied, please try again.
Permission denied, please try again.

遇到此类错误,一般是由于权限问题。以上错误为私钥权限过大。应该将权限设置为600,chmod 600 id_rsa

上一篇下一篇

猜你喜欢

热点阅读