ubuntu生成pem证书连接服务器(已验证)
SSH 密钥认证是什么?
与用户密码登录相比,SSH 密钥认证更安全,因为只有拥有密钥的人才能连接,并且密钥通过不同的算法进行了很好的加密。它还通过无密码登录使 SSH 连接变得简单。
这个搞两个方案,一个是自己需要登录到服务器,一个是开账号给别人登录到服务器
个人的方案
客户端生成密钥对
大多码农都是windows系统,这里就以windows来演示了。
在windows系统,按ctrl+r,直接输入cmd

然后在打开的命令行窗口中,直接进入.ssh目录
$ cd .ssh

运行命令生成密钥对(您可以使用现有密钥或生成新密钥对)
$ ssh-keygen
执行上述命令首先会让你输入生成密钥的文件名:我这里输入的 xjdemo_xiaojin,之后一路回车(也可以输入密码,来个双重保护)

在执行命令的当前目录下会生成一个xjdemo_xiaojin.pub、xjdemo_xiaojin 两个文件。

在服务器添加证书
方法一:将公钥复制到 Ubuntu 主机的最快方法是使用名为ssh-copy-id. 由于其简单性,强烈建议使用此方法(如果可用,比如有在用Git Bash的老铁们,就可以直接用这个linux的命令使服务器自动添加认证这个证书)
$ ssh-copy-id -i ~/xjdemo_xiaojin.pub root@172.25.1.230

方法二:如果您没有ssh-copy-id可用的,但您可以通过基于密码的 SSH 访问服务器上的帐户,您可以使用传统的 SSH 方法上传您的密钥。
我们可以通过使用cmd的type命令读取本地计算机上公共 SSH 密钥的内容并通过 SSH 连接将其传送到远程服务器来完成此操作。
$ C:\Users\EDY\.ssh>type xjdemo_xiaojin.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC90tsEOp9oL+iprQ3ig0y8pcpssR18zxCiD19YvkiL3Y3i9Rg6Kwh48wFy+rjhRbyxeMse2U12nGsLh4mEcEXp7uELXlzSwVKxmJ7JBvuiV/B90Cumf03EwALcsdODIY3z2CwLhc0EAd52xsILXsdFGZDoTcvwzlZ1SZC3SgmfFHnkh6QknWZSAt2pwIl/h2t4jG98X6EraEpmynKHQfbnPIFI7U5T3rNjbSp4WkAff39d8teGqCLk4k7KxC6ngFBIz/itGG/W4X2auW85KV7u/Ptp/BeP25zC2LLqvdZoEkJz0GOM50XLdekQV3lbeh4Zy47AuiwF6ooOhqENRYNmbTMw3HAGsLNxB1k3v0AReFSyUO7Zdzqc8jPns9OjAAQXoh2QGcKnuYjPbxNoJTsthlBwhapS/9pXAtLdgjIy+7orxF7aUC0Gg5jk6zqWfsoo54Eu93M26fTl6eRPRDLjm0Xit0JambN04k9QyIX9LiMGoSewNmw1wEj2HiSH/Ts= xiaojing@DESKTOP-9IGE82N

copy本地的秘钥,直接echo到authorized_keys文件,但要小心,是两个箭头的,这个是续传。如果少一个箭头的话,如把这个文件原有的数据覆盖掉,估计你得吃席了。
$ echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC90tsEOp9oL+iprQ3ig0y8pcpssR18zxCiD19YvkiL3Y3i9Rg6Kwh48wFy+rjhRbyxeMse2U12nGsLh4mEcEXp7uELXlzSwVKxmJ7JBvuiV/B90Cumf03EwALcsdODIY3z2CwLhc0EAd52xsILXsdFGZDoTcvwzlZ1SZC3SgmfFHnkh6QknWZSAt2pwIl/h2t4jG98X6EraEpmynKHQfbnPIFI7U5T3rNjbSp4WkAff39d8teGqCLk4k7KxC6ngFBIz/itGG/W4X2auW85KV7u/Ptp/BeP25zC2LLqvdZoEkJz0GOM50XLdekQV3lbeh4Zy47AuiwF6ooOhqENRYNmbTMw3HAGsLNxB1k3v0AReFSyUO7Zdzqc8jPns9OjAAQXoh2QGcKnuYjPbxNoJTsthlBwhapS/9pXAtLdgjIy+7orxF7aUC0Gg5jk6zqWfsoo54Eu93M26fTl6eRPRDLjm0Xit0JambN04k9QyIX9LiMGoSewNmw1wEj2HiSH/Ts= xiaojing@DESKTOP-9IGE82N' >> /home/xj/.ssh/authorized_keys

测试
现在就可以用xj_xiaojin文件来连接了
$ ssh -i xjdemo_xiaojin xj@172.25.1.230

或者把 xj_xiaojin重命名为 xj_xiaojin.pem
$ ssh -i xj_xiaojin.pem xj@172.25.1.230
更优化的做法,直接ssh就可以了,不需要密码
ssh xj@172.25.1.230
禁用密码连接
注意:要保证 .pem 连接成功的状态下,禁用密码连接
$ sudo vi /etc/ssh/sshd_config
找到这一行 #PasswordAuthentication yes
# Change to no to disable tunnelled clear text passwords
# PasswordAuthentication yes
取消前边的 # 注释,改为
PasswordAuthentication no
重启 ssh服务
$ sudo service ssh restart
好了,教程这到这里结束了
服务器方案
新增用户
root@xjTEST:~/.ssh# adduser king
Adding user `king' ...
Adding new group `king' (1001) ...
Adding new user `king' (1001) with group `king' ...
Creating home directory `/home/king' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for king
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
root@xjTEST:~/.ssh#
赋予root权限
$ chmod 700 /etc/sudoers
$ vi /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) ALL
下边增加
king ALL=(ALL:ALL) ALL
$ chmod 400 /etc/sudoers
生成密钥对
root@xjTEST:~/.ssh# cd /home/king/
root@xjTEST:/home/king# mkdir .ssh
root@xjTEST:/home/king# cd .ssh/
root@xjTEST:/home/king/.ssh# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): king_8.134.210.33.pem
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in king_8.134.210.33.pem
Your public key has been saved in king_8.134.210.33.pem.pub
The key fingerprint is:
SHA256:mAa0TRY+kECFCqU6nPfunpWeiRAStvIXnw3dqVz1iS8 root@xjTEST
The key's randomart image is:
+---[RSA 3072]----+
| o+++.+. |
|.....B |
|o+ o + . |
|= + . = . o o . |
|+= o. = S + . o |
|.oo o+ =.o . |
| ....oo+ E . |
| .o = o . |
| o* + |
+----[SHA256]-----+
root@xjTEST:/home/king/.ssh# ls
king_8.134.210.33.pem king_8.134.210.33.pem.pub
服务器认证证书
root@xjTEST:/home/king/.ssh# cat king_8.134.210.33.pem.pub >> authorized_keys
客户端登录
把私钥传到客户端,放到~/.ssh目录中
xiaojin@xiaojin-PC:~/.ssh$ ssh -i ~/.ssh/king_8.134.210.33.pem king@8.134.210.33
好了教程就到这里结束了。
ubuntu生成pem证书连接服务器(已验证)的更多相关文章
- Openssl生成根证书、服务器证书并签核证书
1.修改Openssl配置文件CA目录: cat /etc/pki/tls/openssl.cnf dir = /etc/pki/CA 2.生成根证书及私钥: #http://www.haiyun.m ...
- Ubuntu下无法使用Secure_CRT连接服务器
虚拟机使用 1 .指令安装了SSH服务器 sudo apt-get install openssh-server 2. 输入命令 ps | grep ssh 查看SSH服务是否开启 显示服务已开启 3 ...
- iOS 生成pem证书
openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes 需要通过终端命令将这些文件转换为PEM格式:openssl p ...
- B-彻底删除卸载Ubuntu中的MySQL并重新安装(已验证)
Ubuntu-16.04,MySQL-5.7,寻找多篇有关如何彻底卸载删除MySQL的博文, 最终验证下面转发博文真实有效,推荐! https://www.jianshu.com/p/c76b31df ...
- iOS_生成pem推送证书(用于百度云推送)
具体步骤如下: 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection Portal(http ...
- nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)
前些天搭好了cas系统,这几天一致再搞nginx和cas的反向代理,一直不成功,但是走http还是测试通过的,最终确定是ssl认证证书这一块的问题,原本我在cas服务端里的tomcat已经配置了证书, ...
- iOS推送证书生成pem文件(详细步骤)
1.pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面介绍一下pem文件的生成. 2.生成pem文件步骤 1.打开钥匙串,选择需要生成的推送 ...
- 【加解密】使用CFSSL生成证书并使用gRPC验证证书
写在前面的话 CFSSL是CloudFlare旗下的PKI/TLS工具.可以用于数字签名,签名验证和TLS证书捆绑的命令行工具和HTTP API服务器. 是使用golang语言开发的证书工具. 官方地 ...
- 关于JDBC技术中,调用MySQL中不建议在没有服务器身份验证的情况下建立SSL连接错误解决
今天学习到了JBDC前沿:对JDBC编写步骤的封装,出现了一大串红色报错(当然,也不能叫报错,毕竟不是所有的红色都是错误eeror,) 错误如下: Establishing SSL connectio ...
随机推荐
- django_day11_项目相关
django_day11_项目相关 新增和编辑 路由 url(r'^category_add/$', views.category_change, name='category_add'), url( ...
- openstack中Glance组件简解
一.Glance组件介绍 1.概念 Glance是OpenStack镜像服务,用来注册.登陆和检索虚拟机镜像.Glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索的实际镜像. ...
- Nginx超时问题解决
在 nginx.conf 中配置以下内容 ... http { ... server { # 这里表示upstream 的连接.读取.发送超时时间都是300秒 proxy_connect_timeou ...
- QT学习(三)
首先整理一下编码的方法.对于一个待解决的问题,首先应该将大问题分解成小问题,将小问题划分为小小问题... 然后再进行类的抽象,将划分成的问题和类进行对应.然后再对划分的小..问题进行具体的处理分析,划 ...
- 【开源打印组件】vue-plugin-hiprint初体验
vue-plugin-hiprint的学习与应用 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习 ...
- C语言001--hello world编译详解
1.编写hello.c程序,并编译运行 book@100ask:~/linux/c01$ cat hello.c -n 1 #include <stdio.h> 2 3 int main( ...
- PLG SaaS 产品 Figma 商业模式拆解
9 月 15 日,Figma 的 CEO Dylan Field 发布消息:今天,Figma 宣布接受 Adobe 的收购... Adobe 以约 200 亿美元收购 Figma,这也是 Adobe ...
- 使用容器运行的minio配置https(TLS)访问
使用certgen生成证书 下载地址:https://github.com/minio/certgen/releases/tag/v0.0.2 下载地址:https://files.cnblogs.c ...
- Beats:Beats在Kibana中的集中管理
我们可以通过在命令行中对我们的Beats进行管理,比如我们可以启动metric几个模块,我们可以通过如下的命令来执行: ./metricbeat modules enable apache mysql ...
- 使用 Elastic Stack 分析地理空间数据 (一)
文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106531939 随着人类在不断地探索空间,地理空间数据越来越多. 收集信息的速度以及 ...