首页 > 其他分享 >ssh远程登录协议

ssh远程登录协议

时间:2024-05-05 17:33:26浏览次数:17  
标签:登录 192.168 id ssh key root 远程

ssh远程登录协议

什么是ssh

SSH即安全外壳协议(Secure Shell),是一种网络协议,用于在计算机网络上提供安全的远程登录和命令执行功能。SSH通过加密通信通道来保护数据传输,防止敏感信息在传输过程中被窃听或篡改。SSH支持多种身份验证方法,包括密码、公钥和证书等,以确保只有授权用户能够访问系统。除了远程登录,SSH还支持文件传输和端口转发等功能,使得SSH成为一种广泛使用的安全远程管理工具。

ssh原理

1.客户端连接服务器的SSH服务端口(默认是22),发送随机数、支持的加密算法列表、SSH版本号等信息。

2.服务器端SSH服务端程序会选择一个加密算法和HASH算法,并生成自己的公钥,发送给客户端。

3.客户端收到服务器的公钥后,会进行验证,如果公钥合法,客户端会生成会话密钥,用服务器的公钥加密,发送给服务器。

4.服务器收到客户端发来的会话密钥后,用自己的私钥解密,确认会话密钥的合法性。

5.服务器和客户端用会话密钥、HASH算法、加密算法等信息生成一个新的密钥,用于后续数据传输的加密。

6.完成上述过程后,客户端和服务器端就可以开始进行加密的数据传输了。

ssh登录

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p

-l :-l 选项,指定登录名称。
-p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

[root@localhost named]# ssh 192.168.10.20  		#若没有修改配置,默认的端口为22
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is SHA256:KtaBKXckd5FGPVjjbVKvTH7FlTeo5/gNAXFWe9UlBlY.
ECDSA key fingerprint is MD5:cf:5f:ec:a4:cc:73:0a:d9:92:7e:35:bd:42:8e:a0:bb.
Are you sure you want to continue connecting (yes/no)? 
 yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last failed login: Sun May  5 15:12:57 CST 2024 from 192.168.10.10 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat May  4 17:08:06 2024 from 192.168.10.1
[root@localhost ~]#    						##这是192.168.10.20里

服务器ssh配置

ssh配置文件:/etc/ssh/sshd-config

通过修改配置文件来改变ssh的配置

ListenAddress ip
#监听地址设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。
LoginGraceTime 2m
#用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒
PermitRootLogin yes 
#默认 ubuntu不允许root远程ssh登录
StrictModes yes   
#检查.ssh/文件的所有者,权限等
MaxAuthTries 
#用来设置最大失败尝试登陆次数为6
MaxSessions  10         
#同一个连接最大会话
PubkeyAuthentication yes     
#基于key验证
PermitEmptyPasswords no      
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。
PasswordAuthentication yes   
#基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 
#单位:秒
ClientAliveCountMax 3 
#默认3
UseDNS yes 
#提高速度可改为no   内网改为no  禁用反向解析
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
#修改默认端口
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#17 行修改自己默认的端口
17 Port 9527

ssh免密登录

通过ssh来生成并发送到指定的IP地址

[root@localhost ~]# ssh-keygen -t rsa			#生成ssh的公密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4yEc1dbyJg7OaJoB7HV8em3EpJgrmFV9w0tQcEqcR0Q [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|       o=@E.     |
|      .o+o@ .    |
| .   o.o.O =     |
|  o o.=.+ = o    |
| . * .oBS= o     |
|  + o =o+o+      |
|     * ...       |
|    o            |
|                 |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id -i [email protected] 			#发送到
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[root@localhost ~]# ssh [email protected]
Last login: Sun May  5 16:58:06 2024 from 192.168.10.20
[root@localhost ~]# ssh-copy-id -i root@服务端IP		#将密钥文件拷贝给服务端,并输入一次服务器端密码

标签:登录,192.168,id,ssh,key,root,远程
From: https://www.cnblogs.com/zhj0708/p/18173673

相关文章

  • 使用 SSH 转义代码来控制连接
    OpenSSH最常被忽视的一个非常有用的功能是能够从连接内部控制会话的某些方面。通过使用SSH转义代码,我们能够在会话内部与本地SSH软件进行交互。强制从客户端断开连接(如何退出卡住或冻结的会话)这些命令可以在SSH会话中以~控制字符开头执行。只有在换行后第一次键入时才......
  • SSH远程访问及控制
    SSH远程访问及控制目录SSH远程访问及控制一、SSH远程管理1、SSH的概述二、配置OpenSSH1服务器1、sshd_config配置文件的常用选项设置2、实例操作三、sshd服务支持登录验证方式有:密码验证和密钥对验证,可以设置只使用其中一种,也可以都启用3.1密码验证:3.2密钥对验证:四、配置密钥对......
  • SSH协议实际应用
    SSHSSH公钥传输是SSH协议中用于安全通信的一种身份验证方式。它基于非对称加密算法,使用公钥和私钥进行身份验证和加密通信。以下是SSH公钥传输的原理:生成密钥对:用户首先需要生成一对公钥和私钥。公钥用于加密数据并验证签名,私钥用于解密数据和生成签名。通常公钥被保存在远程......
  • 解决vscode连接远程服务器出现Bad owner or permissions on C:\\Users\\Administr
    1.找到.ssh文件夹。它通常位于C:\Users2.右键单击.ssh文件夹,然后单击“属性”,选择“安全”3.单击“高级”。单击“禁用继承”,单击“确定”。将出现警告弹出窗口。单击“从此对象中删除所有继承的权限”。4.此时所有用户都将被删除。添加所有者。在同一窗口中,单击“编辑”按......
  • 如何安全的使用密码登录账号(在不知道密码的情况下)
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 1、打开工具,进入账号密码模块,如图2、看到鼠标移动到密码那一栏有提示,按住Ctrl或者Alt点击或者双击就能复制内容,这方法虽然快,但还是能看到密码。3、先模拟一个账号,随意填写数据。保存它。之后左侧就会出现一......
  • 一次scp连接服务器无响应但ssh正常的问题
    背景这个问题在Linux上出现了很久,具体表现是用work账户进行scp时,输入密码后就一直不动;用ssh登录没任何问题;用root账户进行scp能成功。网上找了很多资料,这篇文章使用execzsh导致该问题的出现。我在.bashrc最后加上了exec$HOME/zsh-5.9/bin/zsh使得work账户能用zsh。最根本的原......
  • 在Linux中,什么是SSH,并且如何使用它?
    SSH,全称为SecureShell,是一种安全的网络协议,旨在为网络服务提供安全的远程登录、文件传输以及其他网络服务。它通过加密数据传输,提供认证机制,保证了在网络中传输的数据不被窃听或篡改,从而在不安全的网络环境中实现了安全的连接。SSH协议主要有两个版本,SSH-1和SSH-2,其中SSH-2由于其......
  • 使用浏览器无密码登录Azure DevOps Server
    1.概述AzureDevOpsServer作为软件开发管理平台服务器,除了支持主流的IDE开发工具外,普通用户使用最频繁的客户端工具是网页浏览器。由于AzureDevOpsServer集成AD域服务器实现用户认证,用户每次使用浏览器登录服务器时都需要输入用户的域账户和密码。但是,对于已经使用域账户登录......
  • CentOS7上的Mysql8.3允许远程连接
    点击查看代码[root@clone2~]#mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis9Serverversion:8.3.0MySQLCommunityServer-GPLCopyright(c)2000,2024,Oracleand/oritsaffiliates......
  • 嵌入式Linux,openssh连接报错:ssh_sandbox_violation: unexpected system call
     背景:使用buildroot编译完镜像,烧录到开发板,板子上电启动后,网络正常,ssh不能连接,sshd相同配置在其他机器上可以正常使用;查看内核日志,看到连接时上报异常系统调用的错误:Jan100:01:18NanoPC-T2auth.critsshd[278]:fatal:ssh_sandbox_violation:unexpectedsystemcall......