ubuntu下SSH免密码登录设置

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)端口

猜你喜欢

转载自blog.51cto.com/14447492/2420639
今日推荐