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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!