首页 > 自考资讯 > 自考知识

ssh怎么远程连接,ssh远程登录设置

头条共创 2024-07-05

本文由华为云社区《ssh 远程连接方式总结-云社区-华为云》分享,作者:嵌入式视觉。

SSH(Secure Shell Protocol,又称SSH)是一种加密的网络传输协议,用于在网络内的客户端和服务器之间提供连接。通常,开发涉及通过本地计算机上的SSH 连接到远程服务器。 Windows、macOS和Linux都内置了SSH客户端,但在Windows上使用SSH客户端的体验不是很好,所以通常使用Xshell来代替。

一,准备工作

1.1, 安装 SSH 客户端

建立SSH 远程连接需要两个组件:客户端和相应的服务器组件。 SSH 客户端是安装在本地计算机上的软件,并且服务器上也需要SSH 守护程序。持续侦听特定TCP/IP 端口以获取可能的客户端连接请求的组件。 当客户端发起连接时,SSH 守护程序会以其支持的软件和协议版本进行响应,并且双方交换标识数据。如果提供的凭据正确,SSH 将使用适当的环境创建一个新会话。

MacOS 系统自带SSH 客户端,您可以直接使用。 Windows系统自带Xshell客户端软件,可以直接使用ssh -V命令使用。检查您当前的系统是否有SSH 客户端。

[root@VM-0-2-centos ~]# ssh -VOpenSSH_7.4p1, OpenSSL 1.0.2k-fips 一月26, 2017

1.2, 安装 SSH 服务端

在Linux 系统上,检查ssh 服务器是否可用的命令有以下几种。检查是否有ssh 进程正在运行:

当您运行ps -ef | grep ssh 时,sshd 进程正在运行,并且示例输出显示ssh 服务器可用。

-bash-4.3 $ ps -e | grep ssh 336?00:00:00 sshd 1202?00:00:0 sshd 198?00:00:00 sshd 2710? 333 6000 sshd 9864 ? hd9893 ? 00:00:02 sshd 对于Ubuntu 系统,使用以下命令安装OpenSSH 服务器软件您可以检查是否可用。

ssh localhost # 不同Linux 系统上的输出可能有所不同。

二,基于密码的登录连接

在典型用法中,只需键入以下命令即可连接到远程服务器。

# ssh 连接的默认端口是22。如果本地机上的用户名和远程机上的用户名相同,则ssh username@host # 也可以指定连接端口ssh -p port user @host。上面的命令是一个典型的远程服务器的SSH 连接命令。如果您是第一次连接并运行,通常会键入“yes”并输入帐户密码“:”。

无法确定主机“81.69.58.141 (81.69.58.141)”的真实性。 ED25519 密钥的指纹为SHA256:QW5nscbIadeqedp7ByOSUF+Z45rxWGYJvAs3TTmTb0M。该密钥没有任何其他名称。您确定要继续连接吗?(是/否/[指纹])? 是上次登录: Tuesday February 28th 15:33:06 2023 from xx.xx.xx.xx

三,基于公钥登录连接

上一个命令是密码(私钥)每次都得输入密码,这就更麻烦了。由于登录时可以选择SSH公钥登录连接方式,不需要输入密码。

公钥登录的原理是首先在本地机器上生成公钥/私钥对,然后手动将公钥上传到远程服务器。这样,每次登录时,远程主机都会向用户发送一个随机字符串,用户用自己的私钥对随机字符串进行加密,然后将加密后的字符串发送到远程主机。主机使用用户的公钥解密该字符串。如果解密后的字符串与远程主机发送的随机字符串匹配,则该用户被视为合法并被允许登录。

您只需将私钥传递给远程服务器,远程服务器即可验证私钥是否是对应的公钥,从而允许您登录,而无需输入密码。

SSH 支持多种用于身份验证密钥的公钥算法,包括RSA、DSA、ECDSA 和ED25519。 RSA 算法是最常用的,因为它是SSH 协议的默认算法。因此,我们以RSA算法为例。 生成密钥并配置无密码远程连接。

ssh-keygen 是一个用于为SSH 创建新的身份验证密钥对的工具。此类密钥对用于自动登录、单点登录和主机验证。常用参数定义如下:

-t 参数指定密钥类型,b 参数指定密钥长度。 以下是根据您的公钥登录和连接的具体步骤:

1. 在本地终端中运行ssh-keygen -t rsa -b 4096 命令生成密钥对。执行后会要求输入密钥存储路径。将其保存到默认路径。不要在这里设置密码。按Enter 键。然后系统会要求您再次输入密码。最后按Enter 键。提示密钥生成成功,如下图所示。 ~/目录下生成两个新文件:id_rsa.pub和id_rsa,分别是公钥和私钥文件。每个。

a7cdc7843b694437b4dcfb08e12d767d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720780488&x-signature=J2pRcyD%2BmIQG%2FvsW9piTGulf%2FuE%3D2,将本地.ssh目录下的id_rsa.pub文件内容添加到目标服务器上的~/.ssh/authorized_keys文件中。如果目标服务器没有.ssh目录,请先创建.ssh目录,然后创建authorized_keys文件并添加文件内容。

具体操作命令如下。

# 1. 在本地终端中运行命令cat ~/.ssh/id_rsa.pub。 # 显示并复制本地公钥文件的内容。 # 2. 在远程终端上运行命令(如果您有authorized_keys 文件)。 Skip mkdir -p ~/.ssh # 创建ssh目录touch ~/.ssh/authorized_keys # 创建authorized_keys文件# 3.将本地公钥文件内容粘贴到`authorized_keys`文件中并保存退出。如果您觉得上述步骤过于繁琐,您可以使用以下命令一键完成您的公钥。 配置一键登录连接:

$ ssh username@host 'mkdir -p ~/.ssh cat ~/.ssh/authorized_keys' ~/.ssh/id_rsa.pub 只要将公钥文件的内容写入到远程服务器的authorized_keys文件中,一旦你配置您的登录后,您将不再需要为后续的每个远程连接输入密码。

提交代码时,Github 还使用公钥登录连接。原理是完全一样的,只要将本地公钥文件的内容添加到Github的authorized_keys文件中即可。

四,VSCode 远程连接

VSCode还支持远程连接,可以通过Remote-SSH插件来实现。以下是具体步骤:

1. 在VSCode 中安装Remote-SSH 插件。

2、在Windows系统上使用ctrel+shift+p命令打开命令面板,输入“Remote-SSH: Connect to Host.”然后选择SSH配置,或者选择左侧的Remote Explorer - SSH Targets - Enter via。 SSH 配置。菜单栏。如下图

输入1c04cd55fa6c4a3db8d020dd4ae409e0~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720780488&x-signature=ZmXUFIAlzN%2BJ5PSN2sfxlCaXzOc%3D3 打开~/.ssh/config 配置文件。您可以参考以下模板对:进行配置。

# 详见SSH 配置文件: https://linux.die.net/man/5/ssh_configHost JumpMachine HostName Jump-vscode.sensetime.com # Spring 机器用户名User usernameHost T4 # 目标机器IP 地址HostName xxx. xxx.xxx # 目标机器用户名User username # 目标机器登录端口Port 22 # macos 系统: ProxyCommand ssh -q -W %h:%p JumpMachine ProxyCommand ssh -q -W %h:%p JumpMachine4,本地机器说明请参见第3 章生成公钥并将其添加到远程服务器的authorized_keys中。

5. 配置完成后,保存并退出,然后在VSCode 中,通过单击左侧菜单栏中的Remote Explorer > SSH Targets > T4 连接到远程服务器。

参考资料

Wikipedia-Secure Shell如何使用ssh-keygen生成新的SSH密钥(一):远程登录关注#HUAWEICloudDeveloperAlliance#,第一时间了解华为云新技术~

华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢