公钥私钥帐号绑定ssh登录
假设某台客户机C,想要远程登录到服务器S,那么需要在服务器S上面执行下面的命令:
一、账户创建改密码等
(1)新建账户
sudo adduser henry
把账户加入到sudo组里(即赋予更广阔的权限):sudo usermod -a -G sudo henry
sudo usermod -a -G sudo liuzhaoyzz
getent group sudo
(2)删除账户:
终端方法:sudo userdel -r henry
(3)修改帐号密码:sudo passwd henry
二、在服务器S上面创建公钥-私钥对,注意要用某个账户的公钥+私钥这个密钥对登录,公钥应该放在/home/username/.ssh/authorized_keys,或者说username登录后的~/.ssh/authorized_keys
切换到需要绑定的账户:su user
cd ~
mkdir .ssh
ls ~/.ssh
cd ~/.ssh
ssh-keygen -f id_rsa -t rsa
生成密钥对,公钥id_rsa.pub和私钥id_rsa(没有扩展名)
cp id_rsa.pub authorized_keys
cd ~/
chmod 700 /.ssh
chmod 644 /.ssh/authorized_keys //公钥文件的所有权限
chmod 644 /.ssh/id_rsa //私钥文件的所有权限
这里要注意了,私钥id_rsa必须给予权限644,才能拷贝到客户机C上面,可以用任何可用的办法拷贝到客户机C上面,比如通过其他已登录账户ssh+sftp方式导出。
三、服务器S的登录方式相关选项
1、防火墙端口当然要开,比如22
ufw list
sudo ufw status
sudo ufw allow 22
sudo ufw allow openssh
sudo ufw enable
sudo ufw reload
sudo ufw status numbered
sudo ufw xxx,删除某一条规则
2、您需要注意,如果您的Linux服务器已启用密钥方式登录,服务器会自动禁止使用root用户及密码的方式登录。如果您需要重新使用用户密码方式登录,需要修改配置文件。具体操作,请参见重新启用密码登录方式。
sudo nano /etc/ssh/sshd_config
PasswordAuthentication yes
#改成yes就可以支持密码登陆
(1)找到 #StrictModes yes 改成 StrictModes no (去掉注释后改成 no)
(2)找到 #PubkeyAuthentication yes 改成 PubkeyAuthentication yes (去掉注释)
(3)找到 #AuthorizedKeysFile .ssh/authorized_keys 改成 AuthorizedKeysFile .ssh/authorized_keys (去掉注释)
(4)保存
(5)如果配置文件修改了,就需要重启ssh服务使之生效
/etc/rc.d/init.d/sshd reload 重新加载sudo /etc/init.d/ssh restart
sudo service ssh start
sudo service ssh restart
service ssh status
systemctl restart ssh.service
四、客户机C上面选择使用私钥方式登录到服务器S,私钥就是上面没有扩展名的id_rsa,客户机C上面推荐用Mobaxterm。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫