惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

猫涅的秘密结社

hackthissite-org 数据库原理相关 关于在与我互动前你可能需要了解的事 信安roadmap 个人主页开发汇报 六级生词速记本——附考后感想 数据结构C++自学相关 NewStarCTF-2025 三款steam付费番茄钟软件测评 夏令营-ai hello-world qt环境下的c++程序编写 新新的年 qq机器人配置二三事 搞点java 读书笔记-当下的力量 网页小修时间 glibc更新记录 Vulhub在线靶场记录 Vulhub记录(旧的) 神奇脚本在哪里-CTF之Pwn BaseCTF高校联合新生赛2024 逆逆逆逆逆向-CTF之reverse 求解 夺旗时间 学学学 渗透测试相关 协议/漏洞/网络 最新的知识点 数据分析相关 zico2解析 OverTheWire-bandit解析 CTF实战相关2 靶机解析-gigachad ctf实战相关1 复习time 开学季 维修时间 小小修整 学校实训-笔记 每周靶机之Beelzebub 读书笔记-如何阅读一本书 DC-4解析 DC-2解析 每周靶机之ted 靶机-DC-1 每周靶机之bob potato解析 xss跨站点脚本攻击 每周靶机之Tommyboy1dot0 owasp命令执行漏洞 owasp文件包含漏洞 每周靶机之WALLABY'S-NIGHTMARE owasp上传漏洞 Hackademic.RTB1 owasp与sql注入与sqlmap liunx中sudo服务相关知识 moneybox解析 C语言相关1 关于加入aplayer的方式 再来一次 关于在next7.8.0中建设评论功能这件事 目前的进展 编辑小提示
liunx中ssh服务相关知识
nirvana_felis · 2023-11-08 · via 猫涅的秘密结社

1)ssh是什么涅?

SSH 叫安全外壳协议(Secure Shell),是一种加密的网络传输协议,可在不安全的网络中网络服务提供安全的传输环境。它通过在网络中创建安全隧道来实现 SSH 客户端和服务器之间的连接。

2)ssh的原理是什么涅?

SSH 之所以一经提出,就得到了快速发展,是因为数据的安全性对任何人都非常重要。这里我们对其保护数据安全的原理进行探究。

在聊加密前先介绍一下几个密码学的基本概念:

  • 明文plaintext 指传送方(一般指客户端)想要接受方(一般指服务端)获得的可读信息
  • 密文ciphertext 指明文进过加密后所产生的信息
  • 秘钥key 指用来完成加密、解密、完整性验证等密码学应用的密码信息,是明文转换为密文或密文转换为明文的算法需要的参数
  • 私钥 指私有的秘钥
  • 公钥 指公开的秘钥

常见的加密有两种:对称加密非对称加密
对称加密: 加密和解密的秘钥使用的是同一个.
非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

对称加密算法: 密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高.
优点:
算法公开、计算量小、加密速度快、加密效率高
缺点:
在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
常见的对称加密算法有: DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES

非对称加密算法: 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。
优点:
安全
缺点:
速度较慢
常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

3)ssh登录与免密登录的方式

登录方式:
ssh 用户名@ip地址
免密登录方式:
生成公共身份验证密钥并将其附加到远程主机 ~/.ssh/authorized_keys 文件即可。
具体步骤

  1. 检查现有的 SSH 密钥对。
    在生成新的 SSH 密钥对之前,首先检查您的客户端计算机上是否已有 SSH 密钥,因为您不想覆盖现有密钥。
    运行以下 ls 命令以查看是否存在现有 SSH 密钥:
    ls -al ~/.ssh/id_*.pub
    如果存在现有密钥,您可以使用这些密钥并跳过下一步或备份旧密钥并生成新密钥。
    如果您看到 No such file or directory 或 no matches found 意味着您没有 SSH 密钥,则可以继续执行下一步并生成新密钥。

  2. 生成新的 SSH 密钥对。
    以下命令将生成一个新的密钥对:
    ssh-keygen
    按 Enter 接受则默认文件位置和文件名:
    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
    接下来,ssh-keygen 工具将要求您键入安全密码。无论您是否想要使用密码短语都取决于您,如果您选择使用密码短语,您将获得额外的安全保护。在大多数情况下,开发人员和系统管理员使用 SSH 而不使用密码,因为它们对完全自动化的流程很有用。如果您不想使用密码短语,请按 Enter
    Enter passphrase (empty for no passphrase):

  3. 要确认是否已经生成 SSH 密钥,您可以使用以下命令列出新的私钥和公钥:

    1
    2
    ls ~/.ssh/id\_\*
    /home/yourusername/.ssh/id\_rsa /home/yourusername/.ssh/id\_rsa.pub
  4. 复制公钥
    现在您已经生成了 SSH 密钥对,为了能够在没有密码的情况下登录到您的服务器,您需要将公钥复制到您要管理的服务器。
    将公钥复制到服务器的最简单方法是使用名为的命令 ssh-copy-id 。在您的本地机器终端类型:
    ssh-copy-id remote_username@server_ip_address
    系统将提示您输入 remote_username 的密码:
    remote_username@server_ip_address's password:
    用户通过身份验证后,公钥将附加到远程用户 authorized_keys 文件,并且将关闭连接。
    如果由于某种原因, ssh-copy-id 本地计算机上没有该实用程序,则可以使用以下命令复制公钥:
    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

  5. 使用 SSH 密钥登录服务器
    完成上述步骤后,您应该能够登录到远程服务器而不会被提示输入密码。
    尝试通过 SSH 登录到您的服务器:
    ssh remote_username@server_ip_address
    如果一切顺利,您将立即登录。

4)参考资料

深入了解SSH————知乎
如何设置SSH免密登录————CSDN


最新文章