Linux 远程桌面连接
一.使用SSH进行远程桌面连接
SSH 为 Secure Shell 的缩写,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
1.使用ssh进行登录
$ ssh usrName@hostIp
userName为服务器的名称,默认为root,hostIp是服务器的公网Ip,登录后输入密码即可登录成功。
2.ssh 验证
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒
基于口令的安全验证就是输入完登录指令之后输入密码即可完成验证,但是每次登录都要输入密码比较麻烦,采用密钥的安全验证即可免去每次输入密码的麻烦。
3.密钥登录
生成密钥对
$ ssh-keygen
全部按空格选择默认即可生成。
将公钥发送至服务器
使用scp命令发送文件,格式为
$ scp filepath username@hostIp:targetpath
$ scp ~/.ssh/id_rsa.pub usrname@hostIp:~/
将公钥追加到文件authorized_keys的末尾
$ cat id_rsa_pub >> ~/.ssh/authorized_keys
重启服务器之后就可以不用密码登录了。
4.爬坑
ssh远程连接主机时,出现sign_and_send_pubkey:signing failed:agent refused operation错误,并且还需要输入密码。
这样表示ssh-agent已经在运行了,但是找不到任何附加的keys,说明keys并没有添加成功。
$ eval "(ssh-agent -s)"
$ ssh-add -l 查看添加的keys,应该是没有的
$ ssh-add id_rsa.pub 添加进去