ssh相关问题
问题1
一般错误信息为:ssh: connect to host localhost port 22: Connection refused
这种错误很主要的一个原因是sshd服务没有启动,先启动sshd服务后就没有问题了。
启动sshd服务:service sshd start(前提条件是你已安装过ssh了)
或者防火墙阻止了sshd服务
问题2
无密码登录
首先,root修改/etc/ssh/sshd_config文件(客户端、服务器都需要更改)
将“#AuthorizedKeysFile .ssh/authorized_keys”前面的#号去掉
即,启用“AuthorizedKeysFile .ssh/authorized_keys”
(如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉)
同样root账户下,/etc/rc.d/init.d/sshd restart重启sshd服务使之生效
(客户端中)切换到需要ssh登录的帐户下:
ssh-keygen -t rsa 产生公私钥对
回车 采用默认文件保存钥匙
xxxxx 回车 键入密码短语,直接回车为不建立密码短语。密码短语至少5个字符
xxxxx 回车 重复密码短语,直接回车为不建立密码短语
公私钥产生在此账户的.ssh目录中,id_rsa为私钥,id_rsa.pub为公钥
(服务器中)切换到需要ssh登录的帐户下:
如果服务器中尚未建立公私钥对,那么首先按照客户端的方法建立公私钥对
scp 账户名@客户端主机名或ip地址:/home/帐户名/.ssh/id_rsa.pub /home/帐户名/
将客户端账户的公钥拷到服务器中。客户端用主机名或ip地址均可,但是需与ssh登录命令相符,建议将主机名与ip地址写入/etc/hosts中,此处用主机名即可(下同)。
yes 将客户端写入known_hosts中
输入客户端中的账户密码完成复制
cat /home/帐户名/id_rsa.pub >>/home/帐户名/.ssh/authorized_keys 将id_rsa.pub中的内桶添加到authorized_keys文件中,authorized_keys文件名需与sshd_config中的设置相符。
chmod 644 /home/帐户名/.ssh/authorized_keys 修改authorized_keys文件的权限,至少为644,也可更为严厉(600),不修改的话ssh无密码登录不起作用。
(客户端中)切换到需要ssh登录的帐户下:
ssh 服务器主机名 登录服务器,若在服务器与客户端中的帐户名不同,则
ssh 帐户名@服务器主机名
yes 将服务器写入known_hosts中
若产生公私钥时设置了密码短语,还需要输入密码短语,为了方便,可在客户端中
ssh-add,然后输入密码短语,下次再ssh登录,无需再输入密码短语
关于公私钥对的一点理解:
公私钥对就像是一套钥匙和锁,公钥是锁,私钥是钥匙。私钥留在客户端中,公钥发给服务器。服务器可以有很多把锁,客户端只有一把钥匙。当客户端ssh登录服务器时,服务器会找到这个客户端发的锁,然后跟客户端要钥匙,如果钥匙是配套的,那么登录成功,反之登录失败。当然,以上是针对同一个用户说的,不同用户的公私钥对也不同,而且每次ssh-keygen产生的公私钥对也不同。
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端