美文网首页
使用ssh登陆服务器

使用ssh登陆服务器

作者: web_jianshu | 来源:发表于2020-07-12 23:43 被阅读0次

    工作中,需要经常登陆到开发机上,一般我们输入

    ssh username@example.com(例如: ssh root@47.114.48.244)

    之后,会提示输入密码,即可完成登陆。

    每次都输入这么多,太麻烦,我用如下方法快速方便地登陆:

    第一步,先省去输入密码操作,方法如下:

    自己的机器上使用ssh-keygen生成一对公钥和私钥

    ssh-keygen -t rsa -C 'your email address'

    按照提示,默认会生成 ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub

    然后我们需要将公钥id_rsa.pub添加到服务器的authorized_keys,这样,就可以免密码登陆了。

    用老办法登陆到服务器上,在服务器上如下操作

    cd ~/.ssh
    vim authorized_keys

    将上步在本地机器上生成的id_rsa.pub内容附着到服务器上的authorized_key文件后面(如果原文件有内容的话),保存。

    这里,还需注意服务器上.ssh文件夹及authorized_key这个文件的访问权限。

    chmod 600 authorized_keys
    chmod 700 .ssh

    一切ok,现在使用ssh username@example.com,不需要输入密码了,直接就登陆进去了!

    第二步,省去输入username@example.com,此步骤在本地机器上操作

    方法较多,可以在.bashrc中添加alias;也可以写一个.sh脚本文件,执行一下该文件就行。

    但是这里,我使用ssh config方法来完成。具体如下

    cd ~/.ssh
    vim config

    在config文件里,添加如下代码

    Host dev
         hostname example.com
         user username
    

    现在在console试试
    ssh dev
    就可以直接成功登陆了!

    因为上面第一步,我们在服务器的authorized_keys添加了自己的公钥,所以登陆很方便;但有些时候,我们没有权限做这个事情,比如登陆公司relay机等,还是得输入密码。一个console不够用,我们想新开一个console tab(如我用iTerm, command+T),这个时候我们在新窗口里面ssh login时,又提示输入密码,很烦。下面的办法可以解决!

    在本地机器上,还是打开.ssh/config文件,添加如下几行

    Host *
         ControlPath ~/.ssh/master-%r@%h:%p
         ControlMaster auto
    

    这样,我们看到,当第一次连上服务器后,就会在.ssh下生成一个master-usrname@example:port的文件,此后,建立同样的新连接会共享这个文件,不需要输入密码了。

    经过这些配置,现在登陆起来是不是方便多了?

    相关文章

      网友评论

          本文标题:使用ssh登陆服务器

          本文链接:https://www.haomeiwen.com/subject/solocktx.html