当前位置 主页 > 服务器问题 > Linux/apache问题 >

    shell ssh连接,linux下ssh和Xshell通过密钥登陆

    栏目:Linux/apache问题 时间:2021-02-08 13:00

         首先,ssh的数据传输是对称加密的,加密算法需要一个密钥对数据进行加密解密。 
         对称密钥由客户端生成,使用服务器端发送来的公钥加密(由于体系原因,这个公钥的正确性必须由客户端自行确认,于是在第一次会话时要求确认是否信任服务器发来的公钥)。之后发送给服务器。由非对称加密的原理,只有服务器使用私钥才可对对称密钥进行解密。 
         非对称加密的原理:公钥加密只能私钥解密,私钥加密只能公钥解密。 
         一、linux下ssh命令的身份认证 
         登陆时使用用户名密码进行登陆显然不能满足高级别的保密需求。使用密钥进行登陆不仅使远程连接更加安全而且当在两机之间建立了密钥登陆机制后就不再需要使用密码登录而更加便捷。这种验证方式是基于非对称加密实现的。具体内容不做解释。 
         基本方式是: 
         1、创建一对公钥和私钥
         ssh-keygen -t rsa -f ~/.ssh/id_rsa -N 'passwd'
         -t指定密钥产生算法
         -f指定生成文件,登陆是使用ssh命令进行的,而他的配置文件默认的私钥为家目录下.ssh/id_rsa
         -N对私钥加密以防止私钥泄露后他人乱用,但这也使得以后每次登陆必须输入-N指定的密码。
         2、传将公钥的内容附加到指定用户的authorized_keys后。 
         id_rsa.pub里面的内容是需要附加到你要远程连接的服务器上的用户的家目录下的.ssh目录下的authorized_keys的。 
         在认证时,客户端会使用私钥对服务器发来的一些数据进行加密。而服务器端使用公钥钥解密,如果成功就直接认证通过。 
         实现: 
         将pubkey里面的内容附加到要远程连接的UNSERBANE@RENOTHOST的家目录下的.ssh目录下的authorized_keys后,注是附加而不是覆盖!使用ssh-copy-id可直接完成。
         ssh-copy-id -i /path/to/pubkey UNSERBANE@RENOTHOST
         -i 指定要发送的公钥
         UNSERBANE@RENOTHOST 用户名和主机名
         上传公钥是需要用户密码的,之后基于密钥登陆再也不用输入test的密码。
         3、进行登陆
         ssh -i /path/to/privatekey -l  USER ADDR
          -i指定私钥位置
         -l指定用户名
         ADDR指定链接地址端口号默认为22。自己选定方式ADDR:PORT
         二、windows下使用xshell进行密钥登陆 
         1、创建一对公钥和私钥 
         新建用户密钥生成向导 
         选项,RSA功能较DSA更强大。密钥适度选择长度。 
         生成中。 
         对其选择是否加密。 
         公钥另存为。 
         2、传将公钥的内容附加到指定用户的authorized_keys后。 
    这里可以通过使用xshell先登陆服务器自行将产生的公钥对authorized_keys进行附加。 
         3、进行登陆 
         选择公钥登陆。 
         登陆成功。 
         远程登陆安全性的几点建议:
         不用22端口;
         限定主机登陆;
         限定vpn登陆;
         基于密钥登陆而不是口令;
         禁止管理员直接登陆;
         仅允许有限用户登录。
         这些内容都可以在ssh服务器端的配置文件中进行修改。
         文件:只列出部分,其余请自行参考。 
         /etc/ssh/sshd_config
         Protocol 2 #协议版本最好是2
         PubkeyAuthentication yes #公钥登陆
         #AuthorizedKeysFile     .ssh/authorized_keys
         PasswordAuthentication no #禁止密码登录
         原文链接:https://blog.csdn.net/qq1436248562/article/details/45854779
websocket报错read ECONNRESET:木灵的专栏 vsftp:ftp:connect:connection:refused问题及解决:CenturyMagus的专栏 访问https接口报错 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系:dengqiu2187的博客 c# HttpWebRequest未能为 SSL/TLS 安全通道建立信任的终极解决办法:yunwu009的专栏 C#调用HTTPS报错:基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系--安全证书问题:起风了 C# 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。:liushaoming 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。:baidao5976的博客 解决Error"基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系。":镭风是一种态度! 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系:kinglimy的专栏 "基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系"证书验证失败的解决过程(3)...:weixin_33755557的博客 解决Error"基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系:weixin_30950887的博客 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 根据验证过程,远程证书无效------解决方法...:weixin_30651273的博客 使用socket函数的一些常见错误:ming1205的专栏 OSError:[WinError 10049] 在其上下文中,该请求的地址无效。:roman Windows Socket套接字(四)-Windows套接字错误代码:Greless的后花园 无法指定被请求的地址 解决方法:new_buff_007的博客 无法分配请求的地址(Cannot assign requested address)的解决方案:研究、探索、分享与成长 WSAGetLastError:thenile的专栏 FileZilla sftp方式通过 profix 连接:bjx1234bjx的博客 Windows 套接字, 错误代码值和含义(中文版)整理:wjb9921的专栏