SSH免密码登录设置即禁止SSH使用用户名和密码登录

  两台Linux主机需要从其中一台ssh至另外一台需要手动输入密码,通过以下设置免密码登录

  在需要远程登录的源主机生成秘钥,例如需要在Jenkins远程登录其他主机用于构建发送文件则在Jenkins主机上面执行

1
ssh-keygen -t rsa

  会在文件夹/root/.ssh下面生产公钥和私钥

 

  把秘钥复制至需要免密登录的目的远程主机,第一次拷贝需要输入一次密码

1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.1.3.4

  会在远程主机的文件夹/root/.ssh下面自动生成文件authorized_keys 文件内容为公钥id_ras.pub一样

  也可以直接把公钥复制编辑需要远程登录的主机的/root/.ssh/authorized_keys文件

  验证能否免密登录

1
ssh 10.1.3.4

  拍错

  在需要登录的远程主机跟换以后但是ip保存原来的进行秘钥拷贝时候会出现以下错误提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
 
/usr/bin/ssh-copy-id: ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)!
ERROR: It is also possible that a host key has just been changed.
ERROR: The fingerprint for the ECDSA key sent by the remote host is
ERROR: SHA256:pTp06EZ6R6ntAYVjQSD3I2/Zy8BPxWj3NVL10SmrSWI.
ERROR: Please contact your system administrator.
ERROR: Add correct host key in /root/.ssh/known_hosts to get rid of this message.
ERROR: Offending ECDSA key in /root/.ssh/known_hosts:35
ERROR: ECDSA host key for 192.168.1.99 has changed and you have requested strict checking.
ERROR: Host key verification failed.

   解决办法

  删除/root/.ssh/known_hosts对应主机哪行重新拷贝秘钥

  如果远程主机无法直接root登录可以使用以下命令拷贝秘钥

1
ssh-copy-id -i ~/.ssh/id_rsa.pub username@$ip

   用户名+@+IP地址

  2024-09-05补充开始

  因为阿里云主机使用SSH用户名和密码登录导致被暴力破解,本次补充怎么使用私钥登录以及禁止SSH远程登录

  1. 生成密钥

  生成密钥方式和上面一致本次生成密钥使用的用户为阿里云默认用户ecs-user

  2. 复制公钥至需要远程管理的主机

  本次为阿里云入口主机

1
ssh-copy-id -i ~/.ssh/id_rsa.pub ecs-user@172.16.5.101

  3. 把私钥复制至本地主机

  私钥为

1
$ ls -lah /home/ecs-user/.ssh/id_rsa

  4. 禁止使用用户名和密码远程登录

  修改配置文件把以下配置修改为no默认为yes

1
PasswordAuthentication no

   重启sshd

1
systemctl restart sshd

  5. xshell使用密钥登录

  新建会话

 

  导入密钥 此处为私钥

 

   点击确认即可远程连接

  无法使用用户名和密码连接

  2024-09-05补充结束

排错

在Ununtu系统下设置方式也是一样的,有一次设置不生效,排查发现在以下文件有设置,也设置成no即可

1
2
# cat /etc/ssh/sshd_config.d/50-cloud-init.conf
PasswordAuthentication yes

  

 

posted @   minseo  阅读(564)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示