SSH无密码远程登录服务器

一般情况下我们都通过密码来登录远程服务器,但是这种方式实际上并不安全,一旦密码被中间人获取或者被遍历,被泄露,我们的远程服务器就会被攻陷。所以这种时候我们需要通过秘钥对的方式来登录。
秘钥对的登录原理是,我们生成一个秘钥对(包含一只公钥,一只私钥),把公钥放置在服务器的某一用户上,私钥我们留在本机,这样我们就可以用客户端通过私钥来远程连接到这一用户。只要其他人没有私钥,那么我们的服务器就不会被非自己以外的人SSH来登录了。

1 生成秘钥对

在我们的远程服务器上执行

ssh-keygen     生成秘钥对

期间会提醒你生成秘钥对的路径和设置秘钥对的密码,这个密码最好设置下,可以更好的提高我们私钥的安全性。之后,如果我们没有修改路径的话,就会在家目录下发现一个.ssh目录,里面有我们的私钥id_rsa,以及公钥id_rsa.pub

2 在服务器上安装公钥
cat ~/.ssh/id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
3 打开SSH的秘钥登录功能
vim /etc/ssh/sshd_config

添加如下配置:

RSAAuthentication yes
PubkeyAuthentication yes

重启ssh:

service sshd restart

这里要注意,如果当前在服务器登录的并不是root用户并且不是sudoer,那么会提示没有权限,需要进行如下配置:

  • 3.1 登录root用户
  • 3.2 增加sudoers文件的写权限: chmod u+w /etc/sudoers
  • 3.3 编辑该文件,找到root ALL=(ALL) ALL,在下面一行添加newuser ALL=(ALL) ALL(newuser就是你想添加权限的用户)
  • 3.4 chmod u-w /etc/sudoers 去掉写权限
4 登录

通过如下命令登录:

ssh -p 端口 -i 私钥位置 用户名@主机ip

这时有可能出现提示Permissions 0644 for xxx are too open
这个时候需要为私钥文件赋予更小的权限,400即可

chmod 400 私钥文件位置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值