1.安装ssh
linux发行版,都默认安装了OpenSSH工具包。系统安装完成后,作为服务端的 sshd(SSHDaemon:ssh守护进程)会作为系统服务之一被启动,同时一个SSH工具也会安装好,其是openSSH程序包的一部分,是远程登录客户端程序。
通过# rpm -qa | grep ssh查看是否已安装ssh,在Opensuse12.3下的结果如下:
如果存在如上显示,则表示已安装ssh服务,反之没有安装。
2.启动sshd服务
sshd服务命令如下:
启动sshd服务
# service sshd start或者# /ect/init.d/sshd start
停止服务
# service sshd stop或者# /ect/init.d/sshd stop
重新启动
# service sshd restart 或者# /ect/init.d/sshd restart
3.配置sshd服务
#vim /etc/ssh/sshd.config
修改如下两行
……
RSAAuthentication yes
PubkeyAuthentication yes
……
修改完成后,重启sshd服务
#/etc/init.d/sshd restart
4.使用ssh-keygen设置ssh无密码登录
假设有两台机器node1(192.168.19.1)和node2(192.168.19.2),为使node1可以通过ssh无密码访问node2,操作如下:
A)在node1主机上,切换到root身份,通过rsa(或dsa)方式创建密匙对:
#ssh-keygen -t rsa
之后直接enter以默认值即可
到node1的/root/.ssh目录下 拷贝文件id_dsa.pub到B主机/目录下
在B主机下切换到root身份执行
cat /id-rsa.pub > /root/.ssh/authorized_keys
然后更改权限:chmod 600 /root/.ssh/authorize_keys
最后在node1上执行命令ssh-add ~/.ssh/id_rsa
注:如果ssh-add执行报错:could not open a connection to your authentication agent,则
执行ssh-agent bash --login -i,然后再执行上面的ssh-add命令即可。
B)通过命令#ssh node2的ip地址来测试是否配置成功:
#ssh 192.168.19.2
The authenticity of host 192.168.36.194 can't be established.
RSA key fingerprint is 34:b9:92:06:53:e6:91:4d:47:92:73:57:78:6a:5d:09.
Are you sure you want to continue connecting (yes/no)?yes
Warning: Permanently added 192.168.19.2 (RSA) to the list of known hosts.
这是因为首次访问后,ssh会在.ssh/known_hosts中保存各个认证过的主机信息。
在此访问时,会发现不需要密码直接登录:
#ssh 192.168.19.2
Last login: Sun Feb 3 08:36:38 2013 from node1
Have a lot of fun...
node2无密码访问node1的方法和上面一样