SSH 配置
SSH 配置
MeteorCat安装确认
这里首先需要保证内部已经处理好 openssh:
1 | sudo apt install openssh-server |
确认已经挂起生效监听默认的 22 端口:
1 | sudo lsof -i |grep ssh |
这里出现 *:ssh(LISTEN) 就说明已经有服务开始监听.
生成公密钥
首先绝对不要使用 root 来作为外部SSH访问用户, 而是应该创建非 root 用户来作为登录账号.
这里以我内部的
meteorcat账号为例, 假设目前登录是该账号
这里需要说明目前主要密钥加密类型:
- rsa (常规的加密类型, 兼容性最好)
- ecdsa (新版本的加密类型, 安全性最高,处理最快, 老版本ssh不兼容)
一般来说新系统推荐使用 ecdsa 加密(注意这里不需要 sudo):
1 | ssh-keygen -t ecdsa -C "MeteorCat" |
这里 -C 设置备注信息, 用于标注密钥的大概信息来配合个生成的公钥使用, 键入之后他会有以下内容:
1 | Generating public/private ecdsa key pair. |
这里处理完成就会在当前登录用户找到公钥和私钥文件:
1 | ls -l ~/.ssh |
这里还需要创建记录其他可以登录的用户公钥:
1 | touch ~/.ssh/authorized_keys # 生成放置其他公钥的文件 |
这样公密钥生成就已经完成了.
导入公钥
这里将其他公钥生成内容复制导入到 ~/.ssh/authorized_keys 之中, 一行则为一个公钥, 公钥格式如下:
1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIxxxxxxxxxxxxxxxxxxxxxxxxxx |
直接附加即可.
配置免密登录
修改指定 ssh 文件:
1 | sudo vim /etc/ssh/sshd_config |
找到以下内容注释修改:
1 | # 以下内容找到并解除注释 |
后续重启系统服务:
1 | sudo systemctl restart sshd |
后续可以尝试下直接免密登录是否生效.
单独配置
在某些情况之下, 需要单独配置某些账号允许密码登录, 比如小型个人服务器管理账号需要密钥验证, 但是 Git 账号只需要密码拉取.
个人私用服务器个人账号采用密码, 但是
Git Clone仅仅需要密码拉取, 方便只需安装Git就直接输入账号密码拉取,
这里默认已经配置好git账号权限等.
这里的 git 账号权限配置在 /etc/passwd 文件内容如下:
1 | git:x:1001:1001::/home/git:/usr/bin/git-shell |
请确定是否引导到
git-shell的执行命令下.
确定之后执行编辑命令:
1 | sudo cat /etc/ssh/sshd_config.d/git.conf # 创建编辑针对 git 管理员配置 |
内容如下:
1 | Match Group git |
这里配置项说明:
Match Group git: 匹配Git管理员组Match User git: 匹配Git管理员账号PubkeyAuthentication no: 设置不需要密钥验证登录PasswordAuthentication yes: 设置启用自带的密码登录- 其他配置可以根据
/etc/ssh/sshd_config主文件修改配置, 默认继承主文件配置
配置完之后重启 sshd 即可, 这样就能实现单独 git 输入账号密码进行 git clone 指令.