Linux下使用SSH连接远端服务器技术总结

1.写在前面的话

  • 用linux系统,肯定少不了使用ssh,为什么?你难道想带着你的u盘从上海跑到北京吗?
  • 如果你只会ssh xxxx@xxxxx或者scp xxxxxx xxxxxx这两条命令的话,我相信你一定不了解ssh里面深层次的东西
  • 那为什么要了解深层次的东西呢?不是会用就可以了吗?因为当你想不用密码就登录服务器或者不输入一长串ip地址的时候,就需要了解这些东西了
  • 本文主要就以上两个情况进行技术分析

2.不用密码登录

  • 每次都要输入密码,太过于繁琐了
  • 要想不用密码登录,就要考虑使用公钥。公钥是什么呢?就是由本地机子生成的,用于本地和服务器之间进行连接的钥匙,而私钥是用于解密从服务器端发送的由公钥加密的信息,反过来,公钥是用于解密本地的由私钥加密的信息。
  • 简单来讲,本地和服务器要想连接起来,就必须互相发一条消息,通过加密解密来相互认证,看是否一致,若一致就同意连接
  • 综上,通过公钥就能实现免密码的过程,因为身份验证的过程已被加密解密过程所替代了
  • 那么,具体怎么操作呢?
  1. 首先,在你的本地运行以下命令,在~/.ssh/下创建一个名叫id_rsa-remote-ssh的密钥,这个密钥包含了两个密钥对,即:① 公钥:id_rsa-remote-ssh.pub ② 私钥:id_rsa-remote-ssh

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa-remote-ssh
    

    其中,-f是自己指定创建的密钥名称,如果不指定,会创建一个名为id_rsa的密钥,如果你想为不同的服务器创建不同的密钥,(想要方便管理的话)就要用-f

  2. 然后,将公钥id_rsa-remote-ssh.pub复制到服务器~/.ssh/下,这样就完成了认证文件的传递了

  3. 最后,在服务器上运行:

    cat id_rsa-remote-ssh.pub >> authorized_keys  
    

    这样就完成了认证连接啦,下一步就是运行ssh xxxxx@xxxx试试水了

  4. [补]:开始的时候没有注意,忘了修改本地端的id_rsa-remote-ssh.pub文件权限了,怪不得会报出以下警告:

    	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    

    警告内容无非是说:id_rsa-remote-ssh.pub文件可以被服务器操作,造成安全隐患,所以运行以下代码就可以了:

    sudo chmod 600 id_rsa-remote-ssh.pub 
    

    [补]:在服务器端的authorized_keys的权限也要设置为600,不然,仍需要输入密码登录

3.不输入ssh xxx@xxxx

  • 解决了输密码的问题后,还想一步登天------不输入ssh xxx@xxxx中的xxx@xxxx,而是改为自定义的名称,比如iloveai
  • 具体怎么做呢?
  1. 首先,打开~/.ssh/config文件

  2. 然后,在里面添加以下代码:

    Host iloveai
    HostName ------remote ip------
    User i_-------remote username--------
    IdentityFile ~/.ssh/id_rsa-remote-ssh.pub
    
  3. 最后,运行ssh iloveai,看看能不能直接连上吧

  4. [补]: 还没完,做了第4步后,还会提示以下的错误:

    Load key "xxxxxxxx/.ssh/id_rsa-remote-ssh.pub": invalid format
    

    报上面的错误的原因是,ssh的版本问题,我现在用的是高版本的ssh,所以不能在~/.ssh/config下的IdentityFile中写id_rsa-remote-ssh.pub,而应该改为id_rsa-remote-ssh

  5. [补2]: 原来在IdentityFile中写id_rsa-remote-ssh.pub本来就是错误的做法,正确的做法肯定是写id_rsa-remote-ssh,因为在认证的时候,本地给服务器发的就是经过私钥id_rsa-remote-ssh加密的信息,然后在服务器用公钥id_rsa-remote-ssh.pub进行解密

4. 顺便提提http和https吧

  • https就是加密的http,道理和密钥一样
  • http就是一种浏览器和服务器进行通信的一种协议,但是没有密码哦,所以如果你登录采用http协议的网站进行网购的时候,你的个人信息很有可能被第三方截取
  • 那么,https就是在http上增加了密码,这样信息泄露的概率就大大降低了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值