前言
最近因为工作的开发环境转为Linux,所以尽管我是前端攻城师,还是要熟悉一下开发环境,所以这里一边学习一边留下笔记.
正文
要通过终端连接一个远程主机,正常的配置是直接在命令行中:ssh user@192.168.1.1;然后输入秘密就好了.如果想通过SSH的方式进行免密码登录,就要进行一定的配置.
这里的环境是Mac <--> Linux之间的连接,首先通过命令行生成SSH密匙.一般在home目录下的.ssh文件夹(隐藏)生成密匙,首先进入文件夹.cd ~/.ssh;然后通过ssh keygen命令生成密匙,这里我生成的一个id_rsa和一个id_rsa.pub两个密匙.带有.pub后缀的是公匙,不带的时私匙.
生成完毕后都可以打开里面就是一个长长的字符串,下一步要将公匙的内容复制到远程服务器的固定文件中.这里是希望将~/.ssh/id_rsa.pub(Mac机)的内容复制到/home/elemedev/.ssh/authorized_keys(Linux机).
这样的一个操作你可以通过命令行的方式,也可以vim编辑器来复制内容.如果是复制可以用:sudo scp -r ~/.ssh/id_rsa.pub user@192.168.1.1:~/.ssh/authroized_keys;这一过程可能会报一些问题,比如复制的scp命令提示权限等问题,这里的权限要精确到目录,即你提取内容的目录和你接收内容的目录是否都拥有权限.这里最好不要切换root用户,直接使用sudo升权命令或者修改文件目录即可.
然后再连接的时候,就不需要输入密码了,因为已经通过了SSH的密匙验证.
补充
这样连接还是要写用户名和地址的,如果你可以配置下.ssh/config文件,就可以通过更加方便的方式进行连接.
在config文件中,按照如下格式配置:
Host 别名
HostName 主机名(IP)
Port 端口号(默认可以忽略)
User 登录用户名
IdentityFile 密匙文件路径(包含文件名,不需要后缀)
然后直接通过命令: ssh 别名;这样就可以连接了.
来源:oschina
链接:https://my.oschina.net/u/723632/blog/208980