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

    文章

    567

    浏览量

    26913
  • 网络协议
    +关注

    关注

    3

    文章

    240

    浏览量

    21368
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16075
收藏 人收藏

    评论

    相关推荐

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

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

    ssh连接

    Telne服务使用很方便,但是它是通过明文传递信息,所有安全性就不高,目前普遍使用的SSH(SecureShell)来进行远程管理 。SSH协议有SSH1和SSH2两个版本,他们使用管
    发表于 03-28 16:38

    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次下载

    如何在Linux上检查SSH的版本?

    安全Shell(SSH)通过加密的安全通信通道来远程登录或者远程执行命令。SSH被设计来替代不安全的明文协议,如telnet、rsh和rlogin。SSH提供了大量需要的特性,如认证、加密、数据完整性、授权和转发/通道。
    发表于 05-13 09:41 1494次阅读

    SSH第3部分:配置SSH反向隧道以减少暴露的端口

    命令行工具安全外壳 (SSH) 在客户端和服务器之间提供安全的通信通道。工程师和操作员经常使用 SSH 远程管理他们的设备和主机。例如,通常使用 SSH 登录 Linux 服务器以应用更新、安装
    的头像 发表于 01-03 09:45 1739次阅读
    <b class='flag-5'>SSH</b>第3部分:配置<b class='flag-5'>SSH</b>反向隧道以减少暴露的端口

    SSH第2部分:从Windows 10工作站配置SSH

    Secure Shell (SSH) 协议为您的设备和主机的远程管理提供了几个非常有用和重要的工具。使用 SSH 进行远程、交互式命令行访问、文件传输,甚至封装系统之间的其他网络协议。SSH 客户端
    的头像 发表于 01-03 09:45 1065次阅读

    推荐6款SSH远程连接工具

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

    如何修改Linux系统的SSH端口

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

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

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

    SSH命令详解

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

    轻量服务器怎么搭建ssh

    在搭建轻量服务器时,我们通常需要设置SSH登录,以便能够通过SSH客户端远程连接到服务器。下面是一些简单的步骤来帮助您搭建SSH。 第一步:登录轻量应用服务器控制台 您需要登录轻量应用服务器控制台
    的头像 发表于 10-10 09:59 347次阅读

    NAS教程丨如何通过SSH访问TNAS

    SSH是一种安全的远程登录及传输协议。ssh可用于远程登录、远程文件传输等。下面分享如何通过SSH访问铁威马NAS。 1、在登入SSH前,请先在电脑上安装支持
    的头像 发表于 10-19 11:40 1055次阅读
    NAS教程丨如何通过<b class='flag-5'>SSH</b>访问TNAS

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

    SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多
    的头像 发表于 11-10 10:06 1066次阅读
    <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 251次阅读