赞
踩
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境,以便远程管理系统、传输文件和执行各种网络操作。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows 10 1803版本已提供OpenSSH工具。
SSH通过使用加密技术来保护通信,确保数据在传输过程中不会被窃取或篡改。
SSH key是SSH协议的一种身份验证方式,用于验证用户或计算机的身份。SSH key由一对密钥组成:私钥和公钥。这两个密钥是相关的,但具有不同的用途。以下是SSH key及其使用的详细介绍:
首先,您需要生成一对SSH密钥,linux平台下使用如下命令:
ssh-keygen -t rsa -C "xxx@xxx.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成密钥对后,系统将提示您选择保存密钥的位置和文件名。私钥通常存储在本地计算机上,而公钥则存储在远程服务器上,以便其他计算机可以使用它来验证您的身份。
-t 参数用来指定密钥的加密算法,一般会选择 DSA 算法或 RSA 算法。 如果省略该参数,默认使用 RSA 算法。指定密钥类型(通常是RSA或ED25519)。
-f 指定文件名称,默认会生成 ~/.ssh/id_rsa / id_rsa_pub
-C 参数可以为密钥文件指定新的注释,格式为username@host。 可选,用于添加注释以识别密钥的描述信息。
-b 参数指定密钥的二进制位数。这个参数值越大,密钥就越不容易破解,但是加密解密的计算开销也会加大。 一般来说,-b至少应该是1024,更安全一些可以设为2048或者更高。指定密钥位数(通常是2048或4096位)。
当执行了上面的命令,生产ssh key 后,key就保存在当前用户下的.ssh 目录。 你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在了 ~/.ssh/id_rsa.pub 这个文件里。
本地计算机上的私钥:私钥通常保存在您的本地计算机上,并且必须始终保持私密。私钥用于对远程服务器进行身份验证。
远程服务器上的公钥:将您的公钥添加到远程服务器的~/.ssh/authorized_keys文件中。这可以手动完成,也可以使用ssh-copy-id命令自动完成。这样,远程服务器将能够验证您的SSH连接请求。
把主机A的公钥放在主机B上
scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys
此时用A登陆B就不需要密码了
ssh B_ip
远程登录:使用SSH key进行身份验证,而不是使用密码进行远程登录。这提供了更高的安全性。
文件传输:通过SCP(Secure Copy Protocol)或SFTP(SSH File Transfer Protocol)等工具,可以使用SSH key来安全地传输文件到远程服务器。
自动化任务:SSH key也可以用于自动化脚本或任务,无需人工干预即可与远程服务器进行通信。
更高的安全性:SSH key提供了比密码更强的身份验证,可以有效防止暴力攻击和密码破解。
方便的身份验证:一旦设置,使用SSH key进行身份验证通常比记住密码更方便。
适用于自动化:SSH key适用于自动化脚本和任务,使其可以无需用户干预地与远程服务器通信。
总之,SSH key是一种用于安全连接到远程服务器的强大工具。它提供了更高的安全性和便利性,是许多系统管理员和开发人员的首选身份验证方式。但是,请务必妥善保管您的私钥,以防止未经授权的访问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。