linux下ssh公钥验证的设置和远程登录
2017-10-23 10:04
225 查看
使用
上一步生成了公钥和私钥后,需要将公钥部署到服务器并用私钥登录。因此首先需要将创建的公钥上传到服务器。使用
打开
重启
本人是通过
如果你想只允许服务器通过公钥和私钥的方式来连接服务器的话,可以将服务器配置文件
linux有一段时间了,最近在服务器上假设了一个
git仓库,每次提交时都使用密码实在是比较反人类,因此就特意研究了一下如何使用
ssh密钥来登录服务器。
公钥和私钥的生成
ssh-keygen命令专门是用来生成密钥的。该命令有很多选项,这里列出了最基本的四个:
-t用来指定密钥类型(
dsa | ecdsa | ed25519 | rsa | rsa1);
-P用来指定密语
-f用来指定生成的密钥文件名
-C用来添加注释
ssh-keygen -t rsa -P 123456 -f host -C 'my host key'意思就是新建了密语为
123456注释为
my host key文件名为
host的密钥。此命令会生成
host和
host.pub两个文件,前者为
私钥文件,后者为
公钥文件。如果你想免密登录的话,请将密语设置为空。
将公钥部署到服务器
上一步生成了公钥和私钥后,需要将公钥部署到服务器并用私钥登录。因此首先需要将创建的公钥上传到服务器。使用scp或者你的工具将公钥上传到服务器并将文件内容追加到
~/.ssh/authorized_keys中。例如:
#在本机上执行此命令,上传公钥 scp -P your_port host.pub user@hostname:/tmp #在服务器上执行此命令,追加到authorized_keys cd /tmp && cat host.pub >> ~/.ssh/authorized_keys #更改权限 chmod 600 ~/.ssh/authorized_keys
更改服务器配置
打开/etc/ssd/sshd_config文件,将如下的配置打开:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
重启
sshd,
service sshd restart或者
systemctl restart sshd.service。重启之后,服务器已经支持远程
ssh连接了
连接服务器
本人是通过ssh命令来远程连接服务器的,通过
ssh -p your_port username@domain -i your_private_certification命令,就可以连接到服务器了。如果你是通过
xshell或者
putty来连接的话,导入你的私钥并连接就可以了。
其他
如果你想只允许服务器通过公钥和私钥的方式来连接服务器的话,可以将服务器配置文件/etc/ssh/sshd_config中的
PasswordAuthentication yes改为
PasswordAuthentication No,不过在重启
sshd时不要关闭当前的连接,确认通过私钥能连接到服务器才可以关闭。否则,一旦私钥连不上,密码连接方式又被禁用了,恐怕你就要告别你的服务器了。
相关文章推荐
- linux下ssh公钥验证的设置和远程登录
- OpenWRT新建普通用户+权限设置+免密码登录(ssh公钥验证)
- linux 设置SSH验证后还是无法连接上
- 使用SecureCRT设置linux系统登录的ssh公钥认证
- Linux ssh/scp连接时避免输入yes(公钥验证)并防止出现POSSIBLE BREAK-IN ATTEM
- 使用SecureCRT设置linux系统登录的ssh公钥认证
- 使用SecureCRT设置linux系统登录的ssh公钥认证
- linux-ssh免密码登录设置
- linux下设置了SSH免密码登录但还是需要输入密码的解决办法
- Linux设置SSH连接时间
- 克隆Linux虚拟机,Linux机器SSH互联,Linux机器生成密钥与设置
- Github和OSChina设置SSH公钥免用户名、密码操作
- Debian Linux SSH/SFTP 服务设置
- windows 系统下利用SecureCRT、xshell 生成ssh登陆linux的公钥
- Linux命令之非交互SSH密码验证-sshpass
- linux下SSH端口更改&私钥公钥配置
- Linux配置SSH公钥认证与Jenkins远程登录进行自动发布
- Linux配置ssh无密码验证,rsync
- 如何设置 Linux 上 SSH 登录的 Email 提醒
- linux下使用ssh-keygen生成公钥私钥对