之前将树莓派做了内网穿透,然后为了防止ssh被暴力破解,以下是我给自己的树莓派400创建了一个ssh公钥的完整过程。

1. 制作公钥

创建公钥我们要使用到 ssh-keygen

#命令格式
ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/filename

参数说明:

-m 参数指定密钥的格式,PEM(也就是RSA格式)是以前使用的旧格式,很多ssh客户端都用这个格式。
-t:指定要建立的密钥类型
-b:指定密钥长度
-f:指定用来保存密钥的文件名 (~/.ssh/filename)

配置过程:

pi@raspberrypi400: ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/Rpi400.pem
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):  < 输入公钥密码
Enter same passphrase again:   < 再次输入公钥密码
Your identification has been saved in /home/pi/.ssh/Rpi400.pem
Your public key has been saved in /home/pi/.ssh/Rpi400.pem.pub
The key fingerprint is:
SHA256:/ugJzv8c7MYu/cvk3Wf6bkKAzWAxWfFjwSJ9nuIBtUw pi@raspberrypi400
The key's randomart image is:
+---[RSA 4096]----+
|          o*Eo.  |
|          *+ooo. |
|         . Bo++. |
|          . *.o. |
|        S  . +   |
|       . .  . .  |
|      . .oo ..   |
|     o ..*+= ...+|
|      oo==*.=.oB=|
+----[SHA256]-----+

公钥成功创建,文件所在位置:/home/pi/.ssh/

2. 安装公钥

完成公钥的安装后,为确保连接成功,文件权限也要确保配置正确。

cd .ssh
cat Rpi400.pem.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh

3.下载公钥

如果不知道怎么下载的可以先安装Lrzsz,lrzsz是一款在linux里可代替ftp上传和下载的程序。

sudo apt install lrasz -y
# 下载公钥文件
cd ~/.ssh
sz Rpi400.pem

4.修改SSH配置

sudo nano /etc/ssh/sshd_config
# 找到下面这行将注释符号 # 删除
# PubkeyAuthentication yes

Ctrl + O 回车保存

Ctrl + X 回车退出

重启ssh服务:

sudo service sshd restart

5.使用公钥登录

我使用的ssh客户端是 finalshell 配置界面如下

配置完后登录测试正常。

6.禁用ssh密码登录

如果您的设备暴露在公网上,当你完成全部设置,并以密钥方式登录成功后,可以禁用密码登录功能,加强其安全性防止ssh暴力破解:

sudo nano /etc/ssh/sshd_config
找到
#PasswordAuthentication yes
改为
PasswordAuthentication no


重启ssh服务:

sudo service sshd restart

树莓派ssh连接使用公钥免密登录相关推荐

  1. mac、Linux SSH 阿里云 vultr免密登录服务器

    mac.Linux SSH 阿里云 vultr免密登录服务器 当你拥有了自己云服务器的时候,一定为了每次登录服务器输入密码特别痛苦. 那么福利来了,简单配置一下,免密登录你的服务器,希望能帮到大家 注 ...

  2. SSH详解以及免密登录配置,深入理解

    前面是理论基础,后部分是免密搭建详细步骤. Secure Shell Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,目的是在不安全的网络中为网络服务提供安全的传输环境. ...

  3. macos配置ssh别名登陆并免密登录

    本机配置 文件路径:cd ~/.ssh 编辑config,如果没有新建:touch confing 内容如下 # 输入ECS实例的别名,用户SSH远程连接. Host my_server # 输入EC ...

  4. Vscode连接Linux远程终端(免密登录)

    环境 本地 Windows 远程Linux 一.下载 VSCode.Git 软件 二.VSCode 安装 Remote Development 扩展 三.打开git bash,生成本地密钥对.利用rz ...

  5. ssh集群服务器免密登录

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 现在有两个服务器,ip分别为172.16.0.230和172.16.0.221 修改服务器的hostname 在172.16.0.230上修改/etc ...

  6. linux添加ssh公钥免密登录

    思路 (比如我的电脑是MY,我想免密码登录Remote) 在MY的机器生成一个rsa公钥 在Remote的~/.ssh/authorized_keys文件中添加MY的rsa公钥 在MY上使用ssh登录 ...

  7. Mac使用ssh公钥免密登录服务器

    每次登陆服务器都要输入密码,重复无用的操作让人心生厌烦."懒人是推动社会进步的动力",我的宗旨就是能自动的就不要手动. 下面就像大家介绍我是如何打造无密码登录服务器: 1. 生成公 ...

  8. 华为/华三交换机配置SSH免密登录

    数据通信 - 建设篇 第二章 华为/华三交换机配置SSH免密登录 数据通信 - 建设篇 系列文章回顾 下章内容 华为/华三交换机配置SSH免密登录 背景介绍 实施步骤 堡垒机Linux后台使用ssh- ...

  9. linux上ssh免密登录原理及实现

    因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...

最新文章

  1. mysql5.6更改datadir数据存储目录
  2. openssl生成证书linux,linux中openssl生成证书和自签证书linux操作系统 -电脑资料
  3. if java_Java 条件语句
  4. 博为峰JavaEE技术文章 —— Hibernate域模型(2)
  5. Git迁移 从SVN到Git
  6. 基于Sql Server 2008的分布式数据库的实践
  7. Java中抽象类和接口的区别(来源一)
  8. 吴恩达《机器学习》第十四章:降维
  9. 一起来学Masonry (一)
  10. 数据结构(c语言版)各章内容总结
  11. 98版本QQ五笔词库转98版万能五笔词库
  12. c语言输出100以内素数用函数,用C语言 输出100以内的素数,
  13. Linux-基础部分
  14. 对标阿里P6-P7高级Java程序员的进阶技术路线
  15. Codeforces140CNew Year Snowmen
  16. 基于HyperLPR的车牌识别
  17. ENSP华为模拟器:基础命令及简写
  18. 他很惊讶_局座您是来参加云栖大会吗?
  19. 海康API返回Json值获取
  20. zsh与bash区别

热门文章

  1. 企业实战之VCSA 6.5的安装图文教程
  2. 如何清理c盘不需要的缓存
  3. 【你问我答】第二期:Java并发编程遇到问题了?尽管抛过来吧!
  4. 让你的Android Studio性感起来--Sexy Editor
  5. MATLAB2021a背景颜色设置护眼(豆沙色)
  6. 基于安卓平台的校园社交app设计
  7. ansible免密登录
  8. 阿里“云开发“小程序(uniCloud)
  9. Java基础 面试题
  10. HttpUrlConnection使用详解--转AAAAA