0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SSH是什么?

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-15 14:05 次阅读

一、SSH是什么?

SSH(secure shell)是一种网络协议,用于不同主机之间的加密通信。在1995年被设计出来,现已成为Linux系统的标准配置。

SSH作为一种协议,有多种实现,OpenSSH是其中的开源实现。

命令格式为:ssh 用户名@ip addr

linux@linux:/$ ssh linux@30.0.1.43
The authenticity of host '30.0.1.43 (30.0.1.43)' can't be established.
ECDSA key fingerprint is SHA256:THHVZ1IfwqJk0YpV7Qk/a+ZvMds4phRQJEbrJIJFagg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '30.0.1.43' (ECDSA) to the list of known hosts.
linux@30.0.1.43's password: 
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-122-generic x86_64)
......
linux@linux:~$ exit
logout
Connection to 30.0.1.43 closed.

英文的解释为:无法确定主机“30.0.1.43 (30.0.1.43)”的真实性。现知道ECDSA key fingerprint,确认要连接吗?

输入yes,则给出提示:“警告:将“30.0.1.43”(ECDSA)永久添加到已知主机列表中。”

同时,要求输入目标主机的密码,便登录成功。

远程连接后,并实施操作后,输入exit退出。

这里说明一下:

ECDSA是什么?

椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟

将“30.0.1.43”(ECDSA)永久添加到已知主机列表中。存在什么地方?

linux@linux:~$ cat ~/.ssh/known_hosts 
|1|tl/qb7M5czlKxx/K92mH+LvhzLg=|SBrV7zopc4QRmxrJMnas5fglLWs= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFW6biQLrJ+0KwI1ODyN0iunhGqNahQE2smmawJEcwjdWg90AGPnpEc1T5EH9cZFRt9wfhq7AzpW0l5akYqdws0=

二、SSH的免密登录

每次都输入密码,显然是不友好的,如何做到免密登录呢?可以使用公钥的方式。

1.使用ssh-keygen创建密钥对

ssh-keygen命令用来生成、创建和管理SSH认证用的公私钥。

执行ssh-keygen命令,中间遇到输入的内容,可以一路回车

linux@linux:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/linux/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/linux/.ssh/id_rsa.
Your public key has been saved in /home/linux/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bZX4G8qB+xcrrqutb4/9C//l6Wq6wCWk4k8yOtezuXQ linux@linux
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|           . .   |
|         .. o    |
|        oo o     |
|     . .S.+.o    |
|    . . .+oo.o   |
|     +.o.E+ .o  .|
|   ...*+++ooo. o.|
|   .o oXX==*B++o.|
+----[SHA256]-----+

查看生成的公钥id_rsa.pub和私钥id_rsa

linux@linux:~$ cd ~/.ssh/
linux@linux:~/.ssh$ ls
id_rsa  id_rsa.pub  known_hosts

2.将生成id_rsa.pub拷贝到目标主机上

linux@linux:~/.ssh$ scp id_rsa.pub root@30.0.1.43:/tmp
root@30.0.1.43's password: 
id_rsa.pub                                                                                                               100%  397   535.9KB/s   00:00

3.SSH到目标主机,并将id_rsa.pub添加到目标主机的authorized_keys

linux@linux:~/.ssh$ ssh root@30.0.1.43
root@30.0.1.43's password: 
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-122-generic x86_64)
......




root@linux:/tmp# cat id_rsa.pub >> ~/.ssh/authorized_keys

查看authorized_keys文件内容

root@linux:/tmp# cat ~/.ssh/authorized_keys
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6FbeqPRLroVf57dgljfOUR6VV5BlCDB97kkmfS8meBP0BlOGspWFcroojP74RBBm2ChzoifufsI0huEm7M2oW76+DpteEgDXiFkT7A/U16+crgOsqtnG3tnHYIml+JlbT7Cq65YxnbZWA5MK3cDaQPBajb+jyqfnh2pmhbicjxATkub0CxGRvbkrnUIpzTqkDeXWmQc5E26QFaWfuuZQ/JQZ035oQhT0Kjh5l/7MeImFC++zJRr22anpy3xTM09w7o136C4hCvDpUAYtc2TfizrQP0c/DbE2W1TkgSQ0T8Pw9wht5zcX7Lk13r+HPiG4wXoZtWNVNeiyTc5doLpDt Generated-by-Nova
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDm/MEB2Qw4tN3z18Lkhjq84oluP/3zDnNGF64kdh+23KPKm2m5ev4kpXyC1/uNMfRYpYMhCYeLiFgOEdTINnBuXXDyJ4aohi0TeJPzWUwxtK6opUmeR82V5HBxE0eScEG+KlV5//CjPlbEJvB1x0zeYa6p/1icjWmkNTBnI3rEPPX+vFFQC0PrdibBXWWzRg3/h51YG4asNqp391t9sj+ZWCAbUZ1+zRBB8zYlgAnYhRahxVnjim4gicwM3+staaCqiQeaYODZu8DbmGxuWEUiZN4NfXl8Yej/tZH7cKfHgW+r2gXemiNH2FlHhnf5fi/OxsZQ+8XG7WrEOB+mKD7l linux@linux

说明:可以使用ssh-copy-id命令将id_rsa.pub拷贝到目标主机的 ~/.ssh/authorized_keys文件中,并给目标主机相应目录适当的的权限。

ssh-copy-id -i ~/.ssh/id_rsa.pub 30.0.1.43

  1. 修改sshd_config配置文件
vim /etc/ssh/sshd_config

修改口令登录:yes为no

PasswordAuthentication yes

去掉注释,允许公钥登录

#PubkeyAuthentication yes
PubkeyAuthentication yes

添加:

RSAAuthentication yes

修改authorized_keys文件权限

root@linux:~# chmod 700 .ssh/
root@linux:~# chmod 600 ~/.ssh/authorized_keys

重启sshd服务

root@linux:~# service sshd restart
  1. 使用id_rsa登录目录主机
linux@linux:~/.ssh$ ssh -i id_rsa root@30.0.1.43
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-122-generic x86_64)
......
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    593

    浏览量

    27396
  • 网络协议
    +关注

    关注

    3

    文章

    266

    浏览量

    21541
  • SSH
    SSH
    +关注

    关注

    0

    文章

    189

    浏览量

    16336
收藏 人收藏

    评论

    相关推荐

    【linux篇】ubuntu下的SSH安装与使用

    SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机。常用于远程登陆Linux服务器,在Linux可以通过在终端通过ssh命令进行登陆,在
    的头像 发表于 06-13 09:07 3893次阅读

    SSH定义及应用

    学习完本课程,您应该能够:了解SSH定义及应用。掌握SSH和SFTP工作原理,掌握SSH和SFTP应用,掌握SSH和SFTP的配置及维护。
    发表于 04-12 17:38 12次下载

    SSH指南

    OpenSSH OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具
    发表于 11-07 11:44 1次下载

    OpenSSH的SSH协议实现

    OpenSSH 是 SSH 协议的一个实现。一般通过 scp 或 sftp 用于远程登录、备份、远程文件传输等功能。SSH能够完美保障两个网络或系统间数据传输的保密性和完整性。尽管如此,它最大的优势是使用公匙加密来进行服务器验证。
    的头像 发表于 03-12 15:41 8953次阅读
     OpenSSH的<b class='flag-5'>SSH</b>协议实现

    xsec-ssh-firewall ssh密码防暴力破解程序

    xsec-ssh-firewall.zip
    发表于 05-07 09:50 0次下载
    xsec-<b class='flag-5'>ssh</b>-firewall <b class='flag-5'>ssh</b>密码防暴力破解程序

    推荐6款SSH远程连接工具

    xshell是一个非常强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Windows平台的TELNET 协议。
    的头像 发表于 01-31 09:18 11w次阅读

    如何修改Linux系统的SSH端口

    SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22。
    的头像 发表于 03-20 16:46 2478次阅读

    什么是SSH密钥?如何使用SSH密钥?

    SSH密钥是用户名和密码的替代方法,是一种用户身份验证方法。它主要用于向服务提供加密文件而不是基于文本的密码。
    的头像 发表于 05-04 09:04 5595次阅读
    什么是<b class='flag-5'>SSH</b>密钥?如何使用<b class='flag-5'>SSH</b>密钥?

    保持SSH会话不掉线

    如果我们看到这个错误消息,意味着我们需要手动创建这个配置文件。如果 .ssh 目录不存在,首先创建 .ssh 目录,使用命令 mkdir $HOME/.ssh 来创建目录,如果提示目录已经存在,我们将会看到一个消息 “File
    的头像 发表于 05-05 10:41 2542次阅读

    SSH命令详解

    ssh是一种安全的远程登录及传输协议。ssh可用于远程登录、远程文件传输等。ssh是安全的shell。
    的头像 发表于 06-02 10:00 1.7w次阅读
    <b class='flag-5'>SSH</b>命令详解

    如何配置交换机SSH远程登录?

    如何配置交换机SSH远程登录,本期我们就来了解下ssh远程登陆的方式,以锐捷交换机为例。
    的头像 发表于 08-02 09:35 3779次阅读
    如何配置交换机<b class='flag-5'>SSH</b>远程登录?

    SSH端口号是什么?SSH是如何工作的?

    SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多
    的头像 发表于 11-10 10:06 2752次阅读
    <b class='flag-5'>SSH</b>端口号是什么?<b class='flag-5'>SSH</b>是如何工作的?

    怎么用SSH密钥登陆vps?

    使用SSH密钥登录VPS(Virtual Private Server)是一种更安全和方便的方式,相比使用密码,SSH密钥更难被破解。以下是在Linux系统上使用SSH密钥登录VPS的基本步骤: 一
    的头像 发表于 02-20 16:29 1144次阅读

    什么是反向SSH?如何创建反向SSH隧道?

    反向 SSH 是一种可用于从外部世界访问系统(位于防火墙后面)的技术。
    的头像 发表于 08-05 15:16 709次阅读

    SSH远程操作的基本方式

    SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结。
    的头像 发表于 11-11 11:15 308次阅读
    <b class='flag-5'>SSH</b>远程操作的基本方式