SSH服务器端:A A的SSH端口:portA A的用户名:nameA A的IP:IPA

SSH访问端:B B的用户名:nameB B的IP:IPB 效果:B通过SSH访问A 1)确认ssh是否安装(通过重启来确认) service sshd restart 或 service ssh restart 如果能够重启说明安装了ssh,如果显示ssh: unrecognized service说明没有正确安装SSH 通过 apt-get install openssh-server 来安装SSH 2)查看 /etc/init.d/ 下是否存在ssh或sshd 3)服务器端A:修改 /etc/ssh/sshd_config 配置文件 #PermitRootLogin without-password PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes 4)生成秘钥和公钥(已生成可跳过) ssh-keygen -t rsa 一路回车可产生秘钥(id_rsa)和公钥(id_rsa.pub) 5)添加B访问权限 将B的公钥拷到A的 /root/.ssh/authorized_keys文件末端 或者通过ssh-copy-id nameB@IPB 如果SSH端口号不是22号端口则通过 ssh-copy-id "-p portA nameB@IPB" 添加之后就可以无密码登陆了 可以通过A本机测试 测试成功后再添加B的访问权限 ssh nameA@IPA -p portA 6)WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 这个问题可能是由于访问的IP的公钥信息与known_hosts内不同导致的,删除known_hosts内的B的IP所对应的rsa的信息即可 7)如果连接端口失败可通过telnet AIP -p portA 查看端口是否打开,可通过 sudo ufw enable(启用) sudo ufwdisable (禁用) 防火墙来测试是否因为防火墙导致端口被禁止

打开或关闭某个端口,例如: sudo ufw allow 22/tcp #允许所有的外部IP访问本机的22/tcp (ssh)端口 sudo ufw deny 22/tcp #允许所有的外部IP访问本机的22/tcp (ssh)端口

参考文章: http://www.linuxidc.com/Linux/2016-12/138259.htm http://roclinux.cn/?p=2551 http://blog.51cto.com/linuxme/375752 http://blog.csdn.net/universe_hao/article/details/52296811