因为平时用的都是Linux系统做服务器,都是用账户密码登录,非常不好记录。所以专用SSH来登录服务器跟方便快捷。阔且啥系统都支持。
这都要涉及到几个概念了。每个计算机都可以生成公钥和私钥。 所以要用控制电脑通过SSH控制目标电脑,目标电脑中就需要控制电脑的公钥。为了完成这一点,那么:
控制电脑生成公钥私钥
ssh-keygen -t rsa
需要选择目录和密钥,都可以为空,回车就可以。用root使用的命令就生成在/root/.ssh/里,其他的用户就会生成在/home/user/.ssh/里,或是指定的账户目录里。
此命令会生成两个文件:id_rsa和id_rsa.pub。id_rsa是私钥,不能随便传递,id_rsa.pub是公钥,需要放在目标电脑里。
发送公钥到目标机器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
- ~/.ssh/id_rsa.pub 公钥位置
- user 目标机用户名
- host 目标机主机IP或主机名
例如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.10.0.69
此过程需要输入yes进行指纹验证以及对应用户的登录密码。
ps: Windows主机发送公钥到目标主机参考:windows免密ssh访问主机
登录目标机器
ssh host
通过ssh登录目标机器,然后想做上面就做上面吧!
遇到的问题
重置了目标机之后,或者是目标机公钥丢弃了
会遇到这样的问题 : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
删除控制机上登录目标机的记录,然后再重新把公钥发送给目标机。
sudo ssh-keygen -f "/root/.ssh/known_hosts" -R host
发表回复