知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“SSH”的源代码
←
SSH
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。 在设计上,SSH是[[Telnet]]和非安全shell的替代品。Telnet和Berkeley rlogin、rsh、rexec等协议采用明文传输,使用不可靠的密码,容易遭到监听、嗅探和中间人攻击。SSH旨在保证非安全网络环境(例如互联网)中信息加密完整可靠。不过,SSH也被指出有被嗅探甚至解密的漏洞。 ==简介== ===时间轴=== ==SSH登录== ===密码登录=== ===密钥登录=== ==== 生成公钥和私钥 ==== 在本地电脑使用<code>ssh-keygen</code>命令,默认使用rsa算法。输入命令后第一次询问保存位置,回车保存默认位置即可。第二询问钥保护密码,可以输入密码或回车不设置密码,如果设置登录时需要提供私钥和私钥保护密码。 <syntaxhighlight lang="bash"> ssh-keygen </syntaxhighlight> ==== 服务器配置 ==== * 将公钥放到服务器用户目录下~/.ssh/authorized_keys 文件。 <syntaxhighlight lang="bash"> #服务器在用户目录下创建.ssh mkdir .ssh #将本地生成的公钥id_rsa.pub复制到服务器authorized_keys scp C:\Users\username/.ssh/id_rsa.pub user2@46.100.162.172:/home/user2/.ssh/authorized_keys </syntaxhighlight> *禁止用密码登录。修改服务器 sshd 的配置文件。 <syntaxhighlight lang="bash"> # 使用vim编辑器修改 sudo vim /etc/ssh/sshd_config #将PasswordAuthentication修改为no,按esc键及:wq键保存退出 PasswordAuthentication no #重启ssh服务 service ssh restart </syntaxhighlight> ==== 客户端登录设置 ==== 当使用默认名称的密钥id_rsa,可以不配置,直接登录,如: ssh user@46.100.162.172 如果多个密钥对,登录多台服务器,可以在<code>~/.ssh/config</code>文件中设置服务器对应的认证密钥文件,如: <syntaxhighlight lang="ssh"> Host 46.100.162.172 Hostname 46.100.162.172 User user IdentityFile /home/yourname/.ssh/ali_rsa Host tenxun Hostname 11.100.162.172 User ubuntu IdentityFile /home/yourname/.ssh/tenxun_rsa </syntaxhighlight> ==客户端软件== {| class="wikitable" style="width: 100%; ! 名称 ! 支持系统 ! 描述 ! 官网 |- | GNOME Terminal | Linux | GNOME桌面自带终端,如Ubuntu中的终端软件。可以设置多个配置文件,从而可以快速启动应用或登录不同服务器。 | |- | Windows Terminal | Windows | 微软开源的一款终端软件。支持命令提示符、PowerShell和WSL等shell。可以设置多个配置文件。 | 官网:https://docs.microsoft.com/zh-cn/windows/terminal/ <br \>源代码:https://github.com/Microsoft/Terminal |- | PuTTY | | | https://www.chiark.greenend.org.uk/~sgtatham/putty/ |- | XShell | | |https://www.netsarang.com/zh/xshell/ |} ==常见问题== * 首次登录时出现“所选的用户密钥未在远程主机上注册”。 可以在服务器上查看密钥的指纹,对比两者是否相同,防止受到中间人攻击。 <syntaxhighlight lang="bash"> # 列出服务器ssh密钥文件 ls -al /etc/ssh/*pub # 查看rsa密钥指纹 ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub | awk '{print $2}' </syntaxhighlight> ==资源== ===相关教程=== *[https://docs.microsoft.com/zh-cn/azure/virtual-machines/linux/create-ssh-keys-detailed 微软 Azure 文档:详细步骤:创建和管理 Azure 中的 Linux VM 用于身份验证的 SSH 密钥] *[https://help.aliyun.com/document_detail/53019.html 阿里云文档:SSH密钥对] *[https://help.aliyun.com/document_detail/51798.htm 阿里云文档:通过密钥认证登录Linux实例] *[https://wangdoc.com/ssh/index.html 网道:SSH教程] *[https://git-scm.com/book/zh/v2/服务器上的-Git-生成-SSH-公钥 《Pro Git》:4.3 服务器上的 Git - 生成 SSH 公钥] ===相关文章=== *[https://zh.wikipedia.org/zh-cn/Secure_Shell 维基百科:Secure Shell] *[https://docs.vmware.com/cn/VMware-NSX-T-Data-Center/3.0/administration/GUID-8F3D860E-4F01-452E-A54D-A45FF455F8EB.html VMware NSX-T Data Center:查找远程服务器的 SSH 指纹] [[分类:网络]]
本页使用的模板:
模板:了解更多
(
查看源代码
)
返回至“
SSH
”。