• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

SSH基本概念和常见问题解决

武飞扬头像
adventure.Li
帮助1

一、背景

SSH在进行远程连接通信是好工具,应用场景也很广泛。最近,在使用SSH过程中由于凭借感觉去使用,遇到一些问题,在此记录总结一下。

二、SSH的基本概念

基本背景和特性

百度百科上,关于SSH的介绍较为详细,主要可以去关注以下几点:

  1. SSH的基础背景,解决何种问题

SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据

  1. SSH的结构组成、如何解决该问题
  • 建立与TCP/IP之上的应用层协议
  • 通过秘钥、用户密码进行客户端验证(重点关注理解一下基于秘钥的验证方式)
  • 传输层、用户认证协议、连接协议

传输层协议 [SSH-TRANS]
提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH]
用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

连接协议 [SSH-CONNECT]
将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

  1. 安全技巧,简单应用

如果你还在通过密码方式登录SSH,那么你或许应该试试SSH Keys,首先使用OpenSSH为自己生成一对密钥:$ ssh-keygen

跟随指示,完成之后,你应该可以在你的.ssh目录下看到两个文件,id_rsa就是你的私钥,而id_ras.pub则是你的公钥,现 在你需要将你的公钥拷贝到服务器上,如果你的系统有ssh-copy-id命令,拷贝会很简单:$ ssh-copy-id

否则,你需要手动将你的公钥拷贝的服务器上的~/.ssh/authorized_keys文件中:
$ < ~/.ssh/id_rsa.pub ssh ‘mkdir -p .ssh; cat >> .ssh/authorized_keys; chmod go-w .ssh .ssh/authorized_keys’

更多了解

GitHub上,可以通过源码去进一步探索OpenSSH的实现。

三、简单应用

关键配置文件

由于SSH设计分为ssh客户端和sshd服务端,因此对应的配置文件有:
/etc/ssh/ssh_config和/etc/sshd_config
具体的参数解释,如下表(来源于Linux就该这么学),更加详细的可参考该篇文章
学新通
学新通
学新通

基于用户密码登录

  • 首先,需要检查是否安装OpenSSH(ssh -V),若未安装则需要进行安装(yum install -y openssh)
  • 进行/etc/ssh/sshd_config配置,凭借英语基础就可以配置,将运行用户密码登录改为yes;若root登录需要设置 PermitRootLoing,否则报错权限拒绝
  • 启动 ssh service start ssh、/etc/init.d/sshd start;
  • ssh localhost进行测试、远程进行连接测试

基于密钥的登录

  • 在客户端生成秘钥 ssh-keygen
  • 复制秘钥(公钥)至服务端 ssh-copy-id remoteIP ,或手动复制cat ~/.ssh/id_rsa.pub >> .ssh/authorized_keys
  • 重启服务,service ssh restart

一些常见问题

  • Permission denied(publickey,…password)
    学新通
    解决办法:公钥复制问题,动复制cat ~/.ssh/id_rsa.pub >> .ssh/authorized_keys (注意针对何种用户,放在该用户/.ssh下)
    学新通
  • ssh远程登录报错Warning: Permanently added ‘111.124.131.312‘ (ECDSA) to the list of known hosts.
    学新通
  • wsl 的 ssh server 无法启动 (ssh localhost 时报错ssh: connect to host localhost port 22: Connection refused)

重新安装!(服务拒绝,说明该端口进程大概率没有启动,可通过 ss 命令查看端口开启情况,也可以查看服务是否安装成功)
学新通

  • 问题root@localhost’s password:localhost:permission denied,please try again
    1.安装 open ssh:sudo apt-get install openssh-server
    2.修改root密码:#sudo passwd root
    3.辑配置文件,允许以 root 用户通过 ssh 登录:sudo vi /etc/ssh/sshd_config
    找到:PermitRootLogin prohibit-password禁用
    添加:PermitRootLogin yes
    4.sudo service ssh restart

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggciik
系列文章
更多 icon
同类精品
更多 icon
继续加载