SSH 安装
可以参考这一篇:
里面介绍的较为详尽,总结而言:
“如果你只是想登陆别的机器,只需要安装 openssh-client(ubuntu默认安装了,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装 openssh-server。”
sudo apt-get install ssh
其他的一些基本操作与设置,文章中均有说明。
SSH远程登录
ssh remote_username@10.90.xx.xxx
remote_username 是远端主机名!是远端主机名!是远端主机名!
SSH配置文件
beginner 总是有奇怪的bug出现,要求输入密码,输入,然后就跳出:
remote_username@10.90.xx.xxx: Permission denied (publickey,password).
在公司的同事帮我一顿操作,就解决问题了,虽然不是特别清楚到底是怎么回事。后面自己对.ssh中相应的文件梳理了一下,算是个笔记吧。
关于SSH登录,对于本地主机即有以下:
.ssh/
├── config
├── id_rsa
├── id_rsa.pub
└── known_hosts
对于远端主机:
.ssh/
├── authorized_keys
└── known_hosts
对这几个文件分别记录:
id_rsa--id_rsa.pub
即所谓的私钥--公钥,同样参考该博主的文章:
为了免除登录频繁输入密码需求,可以将id_rsa.pub中内容复制添加到远端主机的authorized_keys内。
可以理解为为了避免远程连接,密码泄漏,加密通讯。
authorized_keys
如其名:认证了的秘钥,因此将本地主机的公钥复制到authorized_keys中,即代表该本地主机已被该远端认证,因此,之后登录可以不用输入密码了。可以参考id_rsa与id_rsa.pub文件详解中的扩展部分
其实类似我们平时常用的登录:记住密码。
known_hosts
已知主机,参考这篇:
不过大部分文章似乎都把这个也都说成是所谓存储公钥的,个人理解,这个应该被认为是身份认证,不然容易与id_rsa--id_rsa.pub相混淆。这个理解为帐号名,相对应的id_rsa--id_rsa.pub是密码更好。
所以差不多就是:
“A通过ssh首次连接到B,B会将身份认证码,主机钥1(host key)传递给A,A将主机钥存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个主机钥2,OpenSSH会核对公钥,通过对比主机钥1与主机钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。”
其实类似我们平时常用的登录:记住账户。
config
该文件非缺省文件,为用户自定义文件,具体可以参考该文章:
基本格式如下:
Host algo
HostName 192.168.XX.XXX
Port 22
User remote_usrname
IdentityFile ~/.ssh/id_rsa
再进行如上操作后,对于远端登录,可以简化为:
ssh algo
可以免去输入远端主机完整ip地址的麻烦。
总而言之,偷懒万岁!