SSH私钥密钥配置(Linux)
Linux配置私钥和密钥
- 使用 ssh-keygen 生成密钥对(私钥和公钥)
- 语法:ssh-keygen -t rsa -C "your_email@example.com" -p Port
- -t 指定密钥类型,默认是 rsa ,可以省略。
- -C 设置注释文字,比如邮箱。
- -f 指定密钥文件存储文件名。
- -p 为端口号
- 提示都不用管,一路回车 (Enter)
- 操作完后会在 ~/.ssh 目录中生两个密钥文件,id_rsa 为私钥,id_rsa.pub 为公钥。
- ~符号代表用户主目录,俗称家目录。其路径与当前登陆的用户有关,在 Linux 中普通用户家目录的路径是/home/用户名,而 root 用户是/root。Windowd 10 中路径是C:\Users\用户名。在 macOS 中路径是/Users/用户名。
- 使用 ssh-copy-id 把公钥上传到另外一台服务器上
- ssh-copy-id -i ~/.ssh/id_rsa.pub User@HostName -p Port
- -i为指定公钥路径,后面的~/.ssh/id_rsa.pub是公钥路径,不指定路径默认就会添加到指定用户下的 ~/.ssh/id_rsa.pub 目录。
- User 为用户名,HostName 为 IP 地址,Port 为端口号。
- ssh-copy-id 命令相当于执行了以下复杂的手动操作:
- 复制公钥文件中的内容
- cat ~/.ssh/id_rsa.pub
- 登录到远程主机
- ssh User@HostName -p Port
- 创建 ~/.ssh 目录
- mkdir -p ~/.ssh
- 把公钥文件写入到 ~/.ssh/authorized_keys
- vim ~/.ssh/authorized_keys
- 设置权限
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/authorized_keys
- 所以使用 ssh-copy-id 大大简化了 SSH 密钥的配置过程。
- 使用 ssh 命令进行密钥登录
- 当私钥存在于默认位置 (~/.ssh/id_rsa) 时,会优先使用密钥登录,所以执行的命令与密码登录没有区别, 系统会把 ~/.ssh/id_rsa 作为默认的 SSH Key,因为 id_rsa 是被默认添加到 ssh agent 中的。
- ssh User@HostName -p Port
- -i为指定私钥路径,后面的~/.ssh/p3terx是私钥路径。
- 多个SSH Key如何管理,在生成多个ssh key的时候使用 ssh-keygen -f 文件名(自定义文件名防止被覆盖)
- 在/.ssh目录下(上面有讲),创建一个config的文件,添加内容
#gitee
Host gitee
User git
Hostname gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# 阿里云
Host aliyun
User root
Hostname 阿里云ip
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
- 配置说明:
- Host:自定义别名(随便)
- HostName:真实的服务器地址(域名)
- User:用户名
- PreferredAuthentications:权限认证(publickey,password publickey, keyboard-interactive)一般直接设为publickey
- IdentityFile:私钥的路径,可指定多个私钥,在连接的过程中会依次尝试。
- Port 端口,不填写默认为 22(ssh默认都是22端口)
- 配置完成之后在终端直接使用即可
- ssh aliyun
- ssh gitee
- 由于配置了gitee的密钥,在下载gitee仓库的时候需要把 git@gitee.com 直接修改为 gitee(它在config中指向的就是 git@gitee.com)
git clone gitee:nanhailiangliang/video-barrage.git
原文地址:https://p3terx.com/archives/configuring-ssh-keys-with-sshkeygen-and-sshcopyid.html