SSH登录介绍

说明:一般登录服务器,我们可以用远程连接工具,如XShell、Windterm等,或者通过公司搭建的JumpServer(跳板机、堡垒机)来连接。前者是点对点登录,输入主机、端口,通过SSH协议登录;后者可以管理主机(资产)、账户,通过给账户分配主机,可以在页面上直接登录,管理起来非常方便。

但是,如果需要登录到客户,或者其他企业的第三方服务器,以上两种方式可能不行。原因有:1)第三方服务器大多不能直接通过公网IP连接,可能需要先登录到他们的跳板机(中间环境),才能连接到服务器;2)客户/其他企业一般不会开放JumpServer账户给你,或者他们压根也没有搭建JumpServer;

这种情况下,可以通过在CMD命令中直接用SSH命令登录。本文介绍如何使用SSH登录服务器,假设我现在是在Windows操作系统下:

基本操作

打开CMD窗口,敲下面的命令,连接服务器,默认通过22端口

powershell 复制代码
ssh user@host

其中,

  • user:表示账户名;

  • host:表示主机,即IP;

如下:

登录我的阿里云服务器,提示登录失败,因为需要SSH秘钥;

指定秘钥登录

敲下面的命令,用-i参数,指定秘钥登录;

powershell 复制代码
ssh -i 秘钥路径 user@host

如下:

这里我遇到了下面这个错误,说我的秘钥权限过于开放,拒绝使用。

我修改了文件了所有者仅为自己,并且只开放了读取和执行权限,再试就可以了。改完需要重新打开CMD。

指定端口登录

一般SSH默认端口是22,如果对方更改了,需要用-p指定端口,如下:

powershell 复制代码
ssh -i 秘钥 -p 端口号 user@host

生成SSH秘钥对(rsa类型)

敲下面的命令,可以生成一对SSH公私钥,可以将公钥放到目标服务器上,后续登录就不需要秘钥了。生成SSH密钥对敲下面的命令:

powershell 复制代码
ssh-keygen -t rsa

敲完命令,连续敲三次回车,就能在当前用户的.ssh文件夹下生成一对SSH秘钥,如下:

详细说明,以及如何传到目标服务器上,可以看下面这篇文章:

验证秘钥正确性

最后一个命令,如何验证秘钥是否正确,有时候我们会把秘钥的内容拷贝出来,放到一个文件里。在传来传去的过程中,可以破坏了秘钥的完整,我们可以敲下面的命令先验证一下秘钥是否正确,再去连接服务器,排查登录不上去是不是有其他原因。如下:

powershell 复制代码
ssh-keygen -l -f ssh秘钥路径

如下,就是一个正确的秘钥

相关推荐
FII工业富联科技服务1 小时前
Omniverse 数字孪生与柔性自动化,如何破解产能与交付、设备与空间的双重困境?
运维·自动化·devops
润滑卫士2 小时前
油液介电常数在线监测:测量原理与油液老化状态评估方法
运维
Rock Chin6972 小时前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化
浩浩测试一下3 小时前
Linux 底层知识点 1
linux·运维·服务器
Eloudy3 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技4 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据4 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
忆挽篱笙歌5 小时前
环境变量,本地变量
linux·运维·服务器
码间留白6 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
吹什么轩7 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php