SSH基本概念和常见问题解决
一、背景
SSH在进行远程连接通信是好工具,应用场景也很广泛。最近,在使用SSH过程中由于凭借感觉去使用,遇到一些问题,在此记录总结一下。
二、SSH的基本概念
基本背景和特性
在百度百科上,关于SSH的介绍较为详细,主要可以去关注以下几点:
- SSH的基础背景,解决何种问题
SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据
- 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 连接。
- 安全技巧,简单应用
如果你还在通过密码方式登录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
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01