1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

时间:2019-03-02 05:54:12

相关推荐

aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

【Linux】 使用ssh连接远程服务器

前言:SSH,英文全称是Secure Shell Protocol(安全的壳程序协议)。SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非对称秘钥系统。而对于我这种普通用户来说,ssh密钥登录的最吸引我的地方就是,可以实现免密登录,从而减少了输入密码口令的繁琐,节省时间,同时可以做到(基本)安全无虞。

公私钥简介与原理

公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:

1.持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。2.乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。3.甲接收到乙发送来的字串与自己的字串进行对比,如果通过则验证通过,否则验证失败。

步骤

原理部分不过多赘述

以我自己在用的CentOS远程服务器为例,本地是Windows操作系统。

首先需要安装git[1]

1)打开git bash,输入

ssh-keygen -t rsa -C "youremail@"

参数说明:

-C参数是用于识别这个密钥的注释,网上很多教程都直接让写自己的邮箱,并未给出其意义,其实次参数只是写一些注释来方便自己识别(The email is only optional field to identify the key.):-C = comment to identify the key

-t参数是指定密钥的类型:-t = The type of the key to generate

之后会提示让输入一个密码,此处密码可以为空,若使用空密码直接敲回车即可。

2)此时在win自己用户名下会多出来一个.ssh的文件夹,里面有两个文件,分别是id_rsa即私钥和id_rsa.pub即公钥

3)将公钥复制到远程服务器CentOS的home目录下面,保存为~.ssh/authorized_keys文件

4)如此,我们就可以愉快地使用ssh密钥免密码登录服务器了

进阶1

1) ssh除了可以登录服务器,还可以用于GitHub[2],Gitee[3]等一众支持ssh的代码托管网站,具体操作参考网站的教程。这里的进阶是想给出配置多用户的方法。

以Windows系统环境为例,在前文所述.ssh文件夹下新建文件config,模板为

config文件模板

参数说明:

Host : 自定义名称,配合IdentityFile可以用于区分不同的账户

Port : 端口名,一般为22,可以用在行首加#注释忽略掉

HostName: 服务器的ip地址或代码托管网站的域名

PreferredAuthentications: 用于指定优先认证的方式

User : 用于连接服务器的话,输入用户名配合IdentityFile可登录到指定的账户

IdentityFile: 用于指定私钥所在位置

example:我有2个GitHub账户,Host分别是 与github2,则在使用时,分别使用git@git@github2即可访问特定账户的GitHub仓库。当然,前提是config里面的设置是正确的。

进阶2

VSCode( Visual Studio Code)使用ssh连接远程服务器进行开发。安装Remote Development扩展,然后按照步骤一步一步设置就好,VSCode里面可能遇到的参数,其意义也与进阶1里面提到的相同。

这里主要说一下可能会遇到的问题。可能会遇到错误信息为Bad owner or permissions而不能成功连接的问题。产生问题的源头是win10 自带的OpenSSH客户端.

解决方法是,卸载自带的OpenSSH,方法如下:

卸载OpenSSH

使用自己下载的git中的ssh。

参考:

VSCode Docs: Remote Development Tips and Tricks[4]

VSCode Docs: Remote Development using SSH[5]

引用链接

[1]git:https://git-/downloads[2]GitHub:[3]Gitee:/[4]VSCode Docs: Remote Development Tips and Tricks:/docs/remote/troubleshooting#_local-ssh-file-and-folder-permissions[5]VSCode Docs: Remote Development using SSH:/docs/remote/ssh#_getting-started

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。