MeteorCat / SSH配置

Created Fri, 29 Sep 2023 01:13:41 +0800 Modified Wed, 29 Oct 2025 23:24:53 +0800
1021 Words

SSH配置

安装确认

这里首先需要保证内部已经处理好 openssh:

sudo apt install openssh-server

确认已经挂起生效监听默认的 22 端口:

sudo lsof -i |grep ssh

这里出现 *:ssh(LISTEN) 就说明已经有服务开始监听.

生成公密钥

首先绝对不要使用 root 来作为外部SSH访问用户, 而是应该创建非 root 用户来作为登录账号.

这里以我内部的 meteorcat 账号为例, 假设目前登录是该账号

这里需要说明目前主要密钥加密类型:

  • rsa (常规的加密类型, 兼容性最好)
  • ecdsa (新版本的加密类型, 安全性最高,处理最快, 老版本ssh不兼容)

一般来说新系统推荐使用 ecdsa 加密(注意这里不需要 sudo):

ssh-keygen -t ecdsa -C "MeteorCat"

这里 -C 设置备注信息, 用于标注密钥的大概信息来配合个生成的公钥使用, 键入之后他会有以下内容:

Generating public/private ecdsa key pair.

# 以下提示说明创建密钥KEY文件, 回车默认就创建在当前登录用户的家目录之下
Enter file in which to save the key (/home/meteorcat/.ssh/id_ecdsa): 
Created directory '/home/meteorcat/.ssh'.

# 以下提示说明创建密钥KEY是否还要进行二次密码加密, 回车表示不需要
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

# 后续这里生成公钥和私钥到指定目录下
Your identification has been saved in /home/meteorcat/.ssh/id_ecdsa
Your public key has been saved in /home/meteorcat/.ssh/id_ecdsa.pub

这里处理完成就会在当前登录用户找到公钥和私钥文件:

ls -l ~/.ssh
# 以下的显示内容
# -rw------- 1 meteorcat meteorcat 505 Oct  6 23:39 id_ecdsa
#-rw-r--r-- 1 meteorcat meteorcat 171 Oct  6 23:39 id_ecdsa.pub

这里还需要创建记录其他可以登录的用户公钥:

touch ~/.ssh/authorized_keys # 生成放置其他公钥的文件
chmod 600 ~/.ssh/authorized_keys # 设定文件权限
chmod 700 ~/.ssh # 设定文件夹权限

这样公密钥生成就已经完成了.

导入公钥

这里将其他公钥生成内容复制导入到 ~/.ssh/authorized_keys 之中, 一行则为一个公钥, 公钥格式如下:

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIxxxxxxxxxxxxxxxxxxxxxxxxxx
ecdsa 256-062421

直接附加即可.

配置免密登录

修改指定 ssh 文件:

sudo vim /etc/ssh/sshd_config

找到以下内容注释修改:

# 以下内容找到并解除注释
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

# 禁用ROOT登录
PermitRootLogin no

# 禁用密码登录, 最好暂时不要开启这项, 保证能够正常免密登录再开启
PasswordAuthentication no

后续重启系统服务:

sudo systemctl restart sshd

后续可以尝试下直接免密登录是否生效.

单独配置

在某些情况之下, 需要单独配置某些账号允许密码登录, 比如小型个人服务器管理账号需要密钥验证, 但是 Git 账号只需要密码拉取.

个人私用服务器个人账号采用密码, 但是 Git Clone 仅仅需要密码拉取, 方便只需安装 Git 就直接输入账号密码拉取, 这里默认已经配置好 git 账号权限等.

这里的 git 账号权限配置在 /etc/passwd 文件内容如下:

git:x:1001:1001::/home/git:/usr/bin/git-shell

请确定是否引导到 git-shell 的执行命令下.

确定之后执行编辑命令:

sudo cat /etc/ssh/sshd_config.d/git.conf # 创建编辑针对 git 管理员配置

内容如下:

Match Group git
Match User git
PubkeyAuthentication no
PasswordAuthentication yes

这里配置项说明:

  • Match Group git: 匹配 Git 管理员组
  • Match User git: 匹配 Git 管理员账号
  • PubkeyAuthentication no: 设置不需要密钥验证登录
  • PasswordAuthentication yes: 设置启用自带的密码登录
  • 其他配置可以根据 /etc/ssh/sshd_config 主文件修改配置, 默认继承主文件配置

配置完之后重启 sshd 即可, 这样就能实现单独 git 输入账号密码进行 git clone 指令.