linux密钥配置(非root)
1.创建用户和密钥对
#创建用户
useradd jenkins
#生成密钥对(建议在其他机器生成)
ssh-keygen -t rsa -b 2048 -f id_rsa
Enter passphrase (empty for no passphrase):
9dmT2XpiIM1h7I
#会在当前路径生成两个文件
id_rsa:你的私钥。
id_rsa.pub:你的公钥。
#创建authorized_keys配置文件。
sudo mkdir /home/jenkins/.ssh
sudo touch /home/jenkins/.ssh/authorized_keys
#添加公钥。
sudo vim /home/jenkins/.ssh/authorized_keys
#将你的公钥内容粘贴到文件中。可配置多个公钥,每个公钥占一行。配置完成后保存并关闭文件。
#设置文件权限。
#SSH 要求严格的权限设置,错误的权限会导致 SSH 登录失败。
#运行以下命令,设置正确的权限。
sudo chown -R jenkins:jenkins /home/jenkins/.ssh
sudo chmod 700 /home/jenkins/.ssh
sudo chmod 600 /home/jenkins/.ssh/authorized_keys
2.开启SSH服务的公钥认证功能
配置公钥后,必须在服务器上启用 SSH 公钥认证。否则,密钥登录会失败。
备份SSH配置文件/etc/ssh/sshd_config。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak使用文本编辑器(如 Vim)打开
/etc/ssh/sshd_config文件,并找到PubkeyAuthentication参数,设置为yes,代表开启公钥认证功能。
sudo vim /etc/ssh/sshd_config重启SSH服务以应用更改。
以Alibaba Cloud Linux 3为例:
sudo systemctl restart sshd3.文件授权
由于不能改变 /opt 下文件的归属,推荐使用以下两种方式之一:
方式一:使用 ACL(访问控制列表)- 推荐
bash
# 给jenkins用户授予/opt目录及子目录中脚本和可执行文件的执行权限
sudo setfacl -R -m u:jenkins:rx /opt
# 设置默认ACL,确保新创建的文件也具有相应权限
sudo setfacl -R -d -m u:jenkins:rx /opt
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 云架构师夏天
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果