目录
SSH是什么
SSH是一种建立在用户应用层上的安全网络协议,是一种为远程登录或其他网络服务提供安全性的网络协议,通过SSH,可以把所有传输的数据进行加密,并且信息通过压缩可以提高传输的速度。
为什么使用SSH
SSH通过非对称加密来保证信息传输的安全,对于传统的网络传输协议都使用的是明文传输数据,这种方式很容易受到中间人的攻击(一个机器冒充服务器接收用户传输过来的数据,再冒充用户将数据转发给真正的服务器)。
SSH有两种级别的验证方法:
1.口令验证:通俗来说就是通过账号密码,通过账号和密码登录上服务器的某一特定账户。
2.密钥验证:需要使用SSH的方式创建一对密钥,将公钥放在服务器上,私钥保留在本地的特定路径下,当需要连接远程主机时,你的客户端软件就会发送请求用密钥进行验证,服务器接到请求后先找到公钥,然后和你发过来的本地的公钥进行比对,如果一致就用向SSH客户端发送使用公钥加密的登录验证,再通过本地的私钥解密,再发到服务器就可以成功登录。
第二种方法的安全性相比第一种更好,效率也更好,所以本文配置SSH连接使用的是密钥免密登录。
通过vscode进行SSH连接
1、在vscode应用拓展商店里面添加Remote Development
在拓展商店里搜索Remote,将Remote及其他几个插件都下了
安装完成后就会出现这个图标
2、配置Remote SSH 连接
在vscode中打开设置(ctrl + ,),搜索show login terminal,并勾选选项
设置配置文件路径,在vscode中ctrl + shift + P ,输入remote-ssh,选择第一个
写配置信息
3、配置免密登录
(1)安装ssh(在命令行中输入ssh出现帮助文档即安装成功)
(2)生成本地密钥
在命令行中 cd ./.ssh 进入目录
输入ssh-keygen -t rsa 生成密钥,一路回车
这时候在.ssh文件中已经有公钥和私钥了,将id_rsa的路径添加到配置文件中
进入远程服务器终端,创建.ssh文件夹
mkdir .ssh
进入.ssh目录,使用scp命令上传id_rsa.pub上传至目录
将id_rsa.pub的内容追加至 authorized_keys
cat id_rsa.pub >> authorized_keys
authorized_keys可以按行存储多台PC的公钥,可以多台PC用密钥连接远程服务器
修改文件的权限(.ssh只能供用户读写执行(权限为700),其他用户不能有权限)
chmod 600 authorized_keys
chmod 700 .ssh
重启服务器
sudo service sshd restart
4、连接
经过以上设置就可以开心的在vscode中连接远程服务器了