龙空技术网

MacOS/Linux 本地生成 SSH Key

gobase 87

前言:

此刻同学们对“linuxfinger怎么弄”大体比较着重,各位老铁们都想要剖析一些“linuxfinger怎么弄”的相关资讯。那么小编同时在网摘上汇集了一些对于“linuxfinger怎么弄””的相关知识,希望姐妹们能喜欢,各位老铁们快快来了解一下吧!

检查本地PC 是否安装有 SSH检查本地用户目录下是否已有 SSH key

命令行中的 % 是为了模拟说明 Shell,不属于命令里的一部分,不同的账号和操作系统不一样,有可能是$、#。

% cd% ls -al
查看 用户目录下是否有隐藏的 .ssh 目录文件如果有执行 cd .ssh 命令进入该目录
% ls -al total 32drwx------ 6 zhaifeng staff 192 12 18 10:30 .drwxr-x---+ 32 zhaifeng staff 1024 12 18 08:42 ..-rw------- 1 zhaifeng staff 2602 12 15 17:23 id_rsa-rw-r--r-- 1 zhaifeng staff 571 12 15 17:23 id_rsa.pub-rw------- 1 zhaifeng staff 828 12 18 10:30 known_hosts-rw-r--r-- 1 zhaifeng staff 92 12 18 10:30 known_hosts.old

如果存在则跳过第 3 步

创建 SSH Key命令语法

ssh-keygen [选项]

命令选项

-b:指定密钥长度;-e:读取openssh的私钥或者公钥文件;-C:添加注释;-f:指定用来保存密钥的文件名;-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;-l:显示公钥文件的指纹数据;-N:提供一个新密语;-P:提供(旧)密语;-q:静默模式;-t:指定要创建的密钥类型

% ssh-keygen -t rsa -C "your_email@example.com"
代码参数含义:-t 指定密钥类型,默认是 rsa ,可以省略。

-C设置注释文字,比如邮箱。

-f 指定密钥文件存储文件名。以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

Generating public/private rsa key pair.# Enter file in which to save the key (/Users/用户名/.ssh/id_rsa): [Press enter]

这里可以输入文件名称,但是建议不输入,使用默认的文件名称,在完成全部命令后默认会生成id_rsa 和 id_rsa.pub 两个秘钥文件id_rsa 私钥文件id_rsa.pub 公钥文件

Enter passphrase (empty for no passphrase): # Enter same passphrase again:
创建过程中,会提示输入两次密码该密码是在使用 SSH Key 时,push文件到云服务(Github、Gitee、Gitlab)要输入的密码,不是该云服务的账号密码SSH key 创建成功提示:
Your identification has been saved in /Users/用户名/.ssh/id_rsa.# Your public key has been saved in /Users/用户名/.ssh/id_rsa.pub.# The key fingerprint is:# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

添加SSH key到Github服务复制本地生成的公钥id_ras.pub中的文本字符串

% cat ./id_rsa.pub

在Mac/Liunx环境下, 如果要查看、复制私钥、公钥, 以及authorized_keys等文件, 不要使用vim等文本编辑器打开,避免产生不必要的回车;

应该通过cat、more等查看命令把内容打印到终端上, 进行复制等操作.

登录 Github 账号,点击右上角头像,在弹出的对话框中,选择Setting->SSH and GPG keys->New SSH Key,将复制的公钥字符串粘贴到Key文本框中,这里 可以选择填写Title或者不填写采用默认生成的,默认生成的是生成公钥时的邮箱。

测试 SSH Key

% ssh -T git@github.com
当输入以命令后,Github 服务会返回一段警告代码,如:
The authenticity of host 'github.com (20.205.243.166)' can't be established.ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.This key is not known by any other names.Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入Yes 并且回车
yesWarning: Permanently added 'github.com' (ED25519) to the list of known hosts.Hi orgrm! You've successfully authenticated, but GitHub does not provide shell access.

如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/Users/用户名/.ssh/id_rsa':

如果你密码输错了,会再要求你重新输入直到正确。

注意:输入密码时使用删除键是无法更正的,可以直接回车然后重新输入。

密码正确后你会看到下面这段话,如:

Hi username! You've successfully authenticated, but GitHub does not# provide shell access.
文件权限

为了让私钥文件和公钥文件能够在认证中起作用, 需要确保权限的正确性:

对于.ssh目录以及其内部的公钥、私钥文件, 当前用户至少要有执行权限, 其他用户最多只能有执行权限.

普通用户, 建议设置成600权限:

chmod 600 authorized_keys id_rsa id_rsa.pub;

root用户, 建议设置成644权限:

chmod 644 authorized_keys id_rsa id_rsa.pub.

禁止设置成777权限: 太大的权限不安全, 而且数字签名也不支持这种权限策略.

标签: #linuxfinger怎么弄