Linux/UNIX:生成SSH密钥
时间:2020-01-09 10:42:15 来源:igfitidea点击:
如何在Linux/UNIX/Mac OS X和* BSD操作系统下生成ssh密钥以进行远程登录? SSH使用公共密钥加密技术对远程计算机进行身份验证,并在需要时允许远程计算机对用户进行身份验证。您可以在任何Linux或者类似UNIX的操作系统(包括Mac OS X)上按以下方式创建ssh密钥。
ssh-keygen命令生成SSH密钥
ssh-keygen命令生成,管理和转换用于ssh客户端和服务器使用的身份验证密钥。
执行以下命令以生成ssh密钥(打开终端并执行命令):
$ ssh-keygen
生成SSH密钥如下所示:
Generating public/private rsa key pair. Enter file in which to save the key (/home/Hyman/.ssh/id_rsa): Created directory '/home/Hyman/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/Hyman/.ssh/id_rsa. Your public key has been saved in /home/Hyman/.ssh/id_rsa.pub. The key fingerprint is: 58:3a:80:a5:df:17:b0:af:4f:90:07:c5:3c:01:50:c2 Hyman@debian The key's randomart image is: +--[ RSA 2048]----+ | .+o++o. | | +E. ++ | | o . o o. | | . o B . | | . B S | | * | | . . | | o | | . | +-----------------+
上面的命令创建~/.ssh /目录。
因此,如果您的用户名为Hyman,则所有文件都将存储在/home/Hyman/.ssh/或者$HOME/.ssh /目录中,如下所示:
$HOME/.ssh/id_rsa
您的私钥。不要与任何人共享此文件。保密- `$HOME/.ssh/id_rsa.pub``您的公共密钥。
请注意,密码短语必须与您当前的密码不同,并且不要与任何人共享密钥或者密码短语。
另外,请确保您对$HOME/.ssh /目录具有正确和安全的权限:
ls -ld $HOME/.ssh/ chmod 0600 $HOME/.ssh/
生成SSH密钥,下一步是什么?
您需要将$HOME/.ssh/id_rsa.pub文件复制到远程服务器,以便可以使用密钥而不是密码登录。
使用以下任一命令将密钥复制到Hyman用户的远程服务器vpn22.theitroad.com:
ssh-copy-id [email protected]
在某些* nix系统上,例如OS X ssh-copy-id命令可能未安装,请使用以下命令(在提示您提供名为Hyman的远程用户帐户的密码时)在远程主机上安装/追加公共密钥:
ssh [email protected] "umask 077; mkdir .ssh" cat $HOME/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"
要登录,只需执行:
ssh [email protected]
以下命令将有助于记住密码短语
exec ssh-agent $SHELL ssh-add ssh [email protected]
高级用户的可选ssh-keygen命令语法
以下语法指定要创建的RSA密钥中的4096位(默认值2048):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/aws.key -C "My AWs cloud key"
其中:
- -t rsa:指定要创建的密钥的类型。协议版本1的可能值为rsa1,协议版本2的可能值为dsa,ecdsa,ed25519或者rsa。
- -b 4096:指定要创建的密钥中的位数。
-f~/.ssh/aws.key
:指定密钥文件的文件名。- -C"我的AWs云密钥":设置一个新注释。
现在安装~/.ssh/aws.key,运行:
ssh-copy-id -i ~/.ssh/aws.key user@aws-server-ip
使用ssh命令进行测试:
ssh -i ~/.ssh/aws.key ec2-user@aws-server-ip