Skip to content

Jenkins 设置阿里云免密登录

root 用户默认是没有 .ssh 目录的,只有当你第一次使用 SSH key 时才会创建。

所以需要给 root 用户配置 SSH Key

✅ 一步步给 root 创建 .ssh 目录

先切到 root(如果你已经是 root 可跳过):

bash
whoami

如果不是 root:

bash
sudo -i

✅ 1. 创建 .ssh 目录

bash
mkdir -p /root/.ssh
chmod 700 /root/.ssh

检查:

bash
ls -ld /root/.ssh

应该是:

drwx------  root root

✅ 2. 生成 SSH key(给 Jenkins / scp 用)

在 root 下执行:

bash
ssh-keygen -t rsa -b 4096

一路回车即可(不要设置密码):

生成:

/root/.ssh/id_rsa      (私钥)
 /root/.ssh/id_rsa.pub (公钥)

✅ 3. 把公钥拷贝到远程服务器(阿里云)

执行:

bash
ssh-copy-id root@101.xxx.xxx.xxx

第一次会让你输入一次密码,之后就免密了。

如果没有 ssh-copy-id,可以手动:

bash
cat /root/.ssh/id_rsa.pub

复制内容,粘贴到远程服务器:

bash
nano /root/.ssh/authorized_keys

✅ 4. 设置权限(非常重要)

远程服务器上:

bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

否则会报错:

Permission denied (publickey)

🧪 测试免密登录

在 Jenkins 机器上测试:

bash
ssh root@101.xxx.xxx.xxx

如果直接登录成功(不输密码) ✅ 说明 scp 也能直接用。

An image

An image