云服务器用ssh登录

本地生成密钥

这里选择在购买前先在本地生成密钥key(分为private key和public key),所以先生成密钥再进行购买,购买完以后直接ssh登录,不需要输入密码(安全性考虑)

其中,public key存放在欲登录的服务器上,而private key为特定的客户机所持有。 
当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public key加密的随机数据给客户机,这个数据只能通过private key解密,客户机将解密后的信息发还给服务器,服务器验证正确后即确认客户机是可信任的,从而建立起一条安全的信息通道。 
通过这种方式,客户机不需要向外发送自己的身份标志“private key”即可达到校验的目的,并且private key是不能通过public key反向推断出来的。这避免了网络窃听可能造成的密码泄露。客户机需要小心的保存自己的private key,以免被其他人窃取。(这就是为什么先在本地生成密钥,而不是在登录你的vps以后生成然后把私钥下载到本地,任何时刻都要保证私钥处在一个安全的地方) 
简单的理论知识就补这么多很好理解,接下来就是步骤了

生成密钥命令

ssh-keygen -t rsa

后面还可以带很多参数,感兴趣可以google 
执行命令会出现这样,执行后让你输入东西的全部回车,文件保存路径也是默认回车就行啦,不需要输入任何东西!!!(因为我已经生成过了,所以把路径选在了桌面)

这步骤完了以后在 cd 到 .ssh 文件下就能看见生成的公钥和密钥,一会公钥有用。

购买腾讯云

然后在下面的ssh密钥输入框那里点击现在创建,出来一个界面以后再次点击创建密钥,会出现如下的图:注意在创建方式那里不要默认选择创建密钥对(这是腾讯给你创建的,不安全,原因前面已经说过了),选择使用已有公钥选项。 还记得刚开始用ssh-keygen -t rsa生成的公钥吗?在你的用户主目录下cd到那个文件去,把他拷贝下来(注意拷贝的是公钥id_rsa.pub),然后粘贴到‘输入公钥’那个长方形框里去,至于密钥名称随意起。

ssh密钥登录vps:

购买完以后注意查收你的邮箱,会给你发邮件,有用户登录密码,注意腾讯给的默认用户是ubuntu而不是root用户,登录的时候登录名请用ubuntu,不然登不上

方法

1. 使用vnc客户端:直接在网页界面你买到的vps后面点击登录(可以试着玩玩),这不是本文的重点! 
2. 使用ssh登录,打开终端输入如下:

~$ ssh ubuntu@xxxxxxxxxx

注意腾讯给的默认用户是ubuntu,@后面加你购买到的vps的公网Ip,vps界面后边有,直接复制

回车以后,直接就登录到你的vps去了(如上图),不用输入密码,这样一是保证安全性,二是方便

成功登录以后说明你的电脑已经可以通过ssh密钥方式直接登录你的电脑了!!

简单的ssh安全配置:

  • .ssh文件设置 
    首先我们来找到公钥的存放位置,默认在 /home/ubuntu/.ssh里面,也就是ubuntu用户目录下的.ssh里,cd到这个文件夹后可以ls一下可以看见id_rsa.pub(也就是你购买时复制本地生成的那个公钥) 
    这里多说一句,正是因为这个文件只有这里有,根目录下没有,所以不能ssh root@xxxxxxx登录。 
    废话不多说//在ubuntu用户下执行如下命令就好了
  • cd .ssh
    ls                 //ls你可以看到这个文件
    touch authorized_keys  //生成认证文件,其实已经有了
    cat id_rsa.pub >> authorized_keys
    chmod 600 authorized_keys    //设置文件权限
    chmod 700 -R .ssh              //是指文件夹权限

    sshd_config文件配置 
    进入到ssh的配置文件sshd_config里,修改一些选项,先找到这个文件(/etc/ssh/sshd_config),如下图,使用超级用户权限打开,其中会要求你输入密码,密码就是腾讯在邮件里给你发的那个密码(不喜欢可以改)

  • 需要进行的几个操作:
  •  //使用密钥登录
    RSAAuthentication yes
    PubkeyAuthentication yes
     //禁止空密码和Root密码登录:
    PermitEmptyPasswords no
    PasswordAuthentication no

    至于AuthorizedKeysFile这个选项不用管,直接用#注释掉就行啦,这个是认证文件的地址,注释掉表示默认地址,就是在/ubuntu/.ssh这个文件里。

  • #AuthorizedKeysFile     %h/.ssh/authorized_keys

    理一理思路

  • 当你在远程启动ssh登录vps时,首先vps端口监听到请求,从sshd_config配置文件找到公钥存放位置,也就是.shh这个文件,与你的本地主机发来的公钥对比,如果匹配上,vps再给你的本地主机发送加密数据,本地主机通过私钥进行解密,将解密的数据再发送给vps,若正确就可以远程登录。
原文地址:https://www.cnblogs.com/wangchaowei/p/6852215.html