soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
SSH终极指南-设置SSH密钥

欢迎使用我们的终极指南来设置SSH(安全Shell)密钥。本教程将指导您创建SSH密钥的基础知识,以及如何管理多个密钥和密钥对。

创建一个新的SSH密钥对

打开一个终端并运行以下命令:

ssh-keygen

您将看到以下文本:

Generating public/private rsa key pair.Enter file in which to save the key (/home/username/.ssh/id_rsa):

按Enter键将密钥保存到默认/home/username/.ssh目录。

然后将提示您输入密码:

Enter passphrase (empty for no passphrase):

建议在此处输入密码以增加安全性。通过设置密码,如果有人持有您的私有SSH密钥或计算机,则可以防止未经授权访问您的服务器和帐户。

输入并确认密码后,您将看到以下内容:

Your identification has been saved in /home/username/.ssh/id_rsa.Your public key has been saved in /home/username/.ssh/id_rsa.pub.The key fingerprint is:SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 username@871e129f767bThe key's randomart image is:+---[RSA 2048]----+| .o=+....||+.*o+o . ||+X.=o o||@.=.oo . ||=O ...o S||o.oo . . ||.E+ . . . .||oo . ... + ||=.. .o. . .|+----[SHA256]-----+

现在,您拥有一个公共和私有SSH密钥对,可用于访问远程服务器并处理诸如Git之类的命令行程序的身份验证。

管理多个SSH密钥

尽管每台设备只有一个公私钥对被认为是一种很好的做法,但是有时您需要使用多个密钥,或者您拥有非正统的密钥名称。例如,您可能正在使用一个SSH密钥对来处理公司的内部项目,但是可能正在使用其他密钥来访问客户端的服务器。最重要的是,您可能使用其他密钥对来访问自己的私有服务器。

一旦需要使用第二个密钥,管理SSH密钥就会变得很麻烦。传统上,您ssh-add通常将密钥存储到ssh-agent,输入每个密钥的密码。问题在于,每次重新启动计算机时都需要执行此操作,这很快就会变得乏味。

更好的解决方案是自动添加密钥,存储密码,并指定访问某些服务器时使用的密钥。

SSH协议 config

输入SSH config,这是用于SSH通信的每个用户的配置文件。创建一个新文件:~/.ssh/config并将其打开以进行编辑:

nano ~/.ssh/config

管理自定义命名的SSH密钥

使用此config文件要解决的第一件事是避免必须使用添加自定义名称的SSH密钥ssh-add假设您的私人SSH密钥名为~/.ssh/id_rsa,请在config文件中添加以下内容

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes

接下来,通过打开另一个终端并运行以下命令来确保~/.ssh/id_rsa不在其中ssh-agent

ssh-add -D

此命令将从当前活动的ssh-agent会话中删除所有密钥

现在,如果您尝试关闭GitHub存储库,则config文件将使用处的密钥~/.ssh/ida_rsa

以下是一些其他有用的配置示例:

Host bitbucket-corporate
HostName bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa_corp
IdentitiesOnly yes

现在您可以使用 git clone git@bitbucket-corporate:company/project.git

Host bitbucket-personal
HostName bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes

现在您可以使用 git clone git@bitbucket-personal:username/other-pi-project.git

Host myserver
HostName ssh.username.com
Port 1111
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes
User username
IdentitiesOnly yes

现在,您可以使用SSH进入服务器ssh myserver每次SSH进入专用服务器时,您不再需要输入端口和用户名。

密码管理

最后一个难题是管理密码。每次初始化SSH连接时,输入密码都会非常麻烦。为了解决这个问题,我们可以使用macOS和各种Linux发行版随附的密码管理软件。

在本教程中,我们将使用macOS的“钥匙串访问”程序。首先通过将-K选项传递ssh-add命令将密钥添加到“钥匙串访问”中

ssh-add -K ~/.ssh/id_rsa_whatever

现在,您可以在“钥匙串访问”中看到您的SSH密钥:

但是,如果你从删除键ssh-agentssh-add -D或重新启动计算机,你会当您尝试使用SSH提示输入密码一次。事实证明,还有另外一环要跳。config通过运行打开您的SSH 文件nano ~/.ssh/config并添加以下内容:

Host *
AddKeysToAgent yes
UseKeychain yes

这样,无论何时运行,ssh它都会在“钥匙串访问”中寻找钥匙。如果找到一个,将不再提示您输入密码。ssh-agent每次重新启动计算机时,密钥也会自动添加到

现在,您已经了解了创建新的SSH密钥和管理多个密钥的基础知识,请放心动心ssh



2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示