Linux

柔情痞子 提交于 2019-12-05 19:23:26

  前言

    最近因为工作的开发环境转为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 别名;这样就可以连接了.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!