linux关闭密码登录

公网机器存在被攻击的风险,经常会出现ssh登录的时候,由于密码输错次数过多而被锁住无法登录的情况。原因是公网IP被攻击,不断尝试ssh登录,导致密码输错次数过多。
规避方法有1. 修改默认端口号为非22端口, 2. 关闭密码登录功能,3. 配置防火墙,只允许指定IP的机器访问。此处介绍关闭密码登录,使用密钥登录方法。

基础操作

  1. 在客户端生成密钥对ssh-keygen,之后一直按回车即可。
  2. 将本地密钥对的公钥上传到服务器。
  • ssh-copy-id -i ~/.ssh/id_rsd.pub root@IP。需要输入服务器的密码。如果ssh默认端口不是22,需要加-p 端口号指定端口。
  • 或者手动复制~/.ssh/id_rsd.pub中的内容到服务器的~/.ssh/authorized_keys文件中。
  1. 直接免密登录。ssh root@IP。可以用-p 端口号-i key_file分别指定端口号和密钥文件。
  2. 关闭密码登录。修改/etc/ssh/sshd_config文件,将PasswordAuthentication yes改为noPubkeyAuthentication yes改为yes(如果为no的话),然后重启sshd服务systemctl restart sshd即可。

注意:私钥文件的权限必须是600。

多环境配置

如果我们的服务器数量较多,每次要登录不同环境,且每个环境使用的密钥对不一致,则,可以通过`~/.ssh/config文件来对环境进行区分。

Host alias  # 别名,之后可以通过ssh alias来直接登录
  User user # 用户名
  HostName IP # 服务端IP
  Port port # 端口号,可省略,默认22
  IdentityFile /xxx/your_key # 密钥文件,可省略,默认~/.ssh/id_rsd
  ServerAliveInterval 360 # 会话保持时间,单位秒,可省略

跳板机

有时候,我们的目标机器不能直接连接,需要先登录跳板机然后在跳板机中登录目标机器。可以通过如下配置,然后ssh mubiaoji直接连接目标机器。

Host tiaoban
 Hostname 跳板机的ip
 Port 跳板机的端口(如果是非22的需要填写)
 User root(如果非root,换成跳板机的用户)
Host mubiaoji
 Hostname 目标机的IP
 Port 目标机的端口(如果是非22的需要填写)
 User root(如果非root,换成目标机的用户)
 ProxyCommand ssh -q -x -W %h:%p tiaoban

ProxyCommand用来指定连接到服务器的命令. 其可以是任何的命令,只要能从其标准输入读入数据,然后写出到标准输出即可。这条命令需要连接到sshd服务器上。
在不使用ProxyCommand的情况下,ssh会自己建立到目标机器22端口的连接.使用了ProxyCommand,那么使用指定命令来建立到目标机的连接,ssh直接使用已经建立的连接。

-W host:port 将client过来的标准输入和输出forward到host和port指定的地方.

这儿的%h表示要连接的目标机,也就是Hostname指定的ip或者主机名,%p表示要连接到目标机的端口.这儿可以直接写死固定值,但是使用%h和%p可以保证在Hostname和Port变化的情况下ProxyCommand这行不用跟着变化.

其他

  • 有些机器设置了禁止root用户登录功能,开启方式为修改/etc/ssh/sshd_config文件中的PermitRootLogin noyes
  • scp命令,可以通过scp -i you_key_file xxx root@IP:/xxxx来拷贝。

版权声明:
作者:admin
链接:https://www.techfm.club/p/54948.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>