我正在编写一个创建用户并为该用户添加密钥的脚本,以便他可以使用该密钥和他的用户名通过 SSH 连接到我的虚拟机
前任。用户 = 约翰
useradd -m john &&
cd ~/.ssh/ &&
rm -rf tmp_rsa* &&
ssh-keygen -t rsa -b 4096 -C "[email protected]" -N '' -f john_rsa &&
echo "#tmp_rsa" >> authorized_keys &&
cat john_rsa.pub >> authorized_keys &&
cat authorized_keys &&
service ssh restart &&
echo ">>> Done"
上面的脚本是否正确地实现了我想要的?
我尝试与 UN: 连接john
,并生成了密钥john_rsa
。
我有
感谢@marosg和@Takkat
这是我更新的脚本
adduser -m john &&
cd ~/.ssh/ &&
rm -rf tmp_rsa* &&
ssh-keygen -t rsa -b 4096 -C "[email protected]" -N '' -f john_rsa &&
echo "#tmp_rsa" >> ~john/.ssh/authorized_keys &&
cat john_rsa.pub >> ~john/.ssh/authorized_keys &&
cat authorized_keys &&
echo ">>> Done"
这里有几件事是错误的:
你创建了用户 john,然后你不再对这个用户做任何事情
您正在向您的用户添加密钥
需要在此处登录的远程用户需要来自他正在连接的机器上的 ssh 密钥对的私钥
添加密钥后无需重启ssh服务
您在客户端需要什么
ssh-keygen ...; cat id_rsa.pub
)您在服务器端需要的是
添加用户 john
将用户提供的公钥添加到 ~john/.ssh/authorized_keys (
echo id_rsa.pub_provided_by_remote_user >> ~john/.ssh/authorized_keys
)