-
2021-09-27 17:06:19
场景需求
我们经常使用Windows系统环境,有时候需要远程连接Linux服务器进行环境搭建或参数配置或编译等,这就需要使用第三方SSH客户端(MobaXterm),通过SSH远程登录操作了。
解决方案
远程连接Ubuntu步骤
1.在Ubuntu上安装ssh server
sudo apt-get install openssh-server
2.查看Ubuntu主机的IP
#安装工具 sudo apt install net-tools #查看IP命令:ifconfig ubuntu@VM-0-10-ubuntu:~$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.10 netmask 255.255.240.0 broadcast 172.17.15.255 inet6 fe80::5054:ff:fed9:b81 prefixlen 64 scopeid 0x20<link> ether 52:54:00:d9:0b:81 txqueuelen 1000 (Ethernet) RX packets 374791 bytes 76935406 (76.9 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 351378 bytes 77879717 (77.8 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 21860 bytes 1775091 (1.7 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 21860 bytes 1775091 (1.7 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #如上IP为172.17.0.10
3.远程连接Ubuntu
-
WIndows使用MobaXterm的SSH登录:输入Remote host即IP地址,username即Ubuntu用户名,可通过
whoami
获取,再输入Ubuntu用户密码即可登录。 -
Linux主机SSH登录:
ssh whoami@ip
,再输入密码即可。
更多相关内容 -
-
ssh远程连接windows
2022-04-24 22:38:44以下是windows中特有的操作 更改authorized_keys文件权限,不更改则无法通过密钥登录 # 远程通过ACL更改文件权限 ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant ...由于奇怪的需求需要部署一台windows服务器,记录一下部署的过程
1安装Windows OpenSSH
首先通过powershell安装OpenSSH的服务端
在开始图标
上点击右键,选择Windows PowerShell(管理员)(A)
在powershell中输入:
# 安装OpenSSH客户端 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 #安装OpenSSH服务端 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
在powershell中输入:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
若返回为:
Name : OpenSSH.Client~~~~0.0.1.0 State : Installed Name : OpenSSH.Server~~~~0.0.1.0 State : Installed
则表示安装成功,若返回为:
Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent
表示安装失败,再来一遍吧,注意全程需要管理员权限。
2启动SSH服务器
依然是以管理员身份打开PowerShell,然后运行以下命令来启动 sshd service
# 启动sshd服务 Start-Service sshd # 将sshd服务设置为自动启动,若不设置需要在每次重启后重新开启sshd Set-Service -Name sshd -StartupType 'Automatic' # 确认防火墙规则,一般在安装时会配置好 Get-NetFirewallRule -Name *ssh* # 若安装时未添加防火墙规则"OpenSSH-Server-In-TCP",则通过以下命令添加 New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
3开启密钥登录
这一步是重中之重,加强安全,减少麻烦!!!
生成密钥的方法都是一样的,可以自行搜索,与linux不同的地方在于权限管理和默认authorized_keys存放位置。
公钥 (~\.ssh\id_rsa.pub) 的内容需放置在服务器上的一个名为
authorized_keys
的文本文件中,该文件位于 C:\Users\username\.ssh\。 OpenSSH 客户端包括了 scp 来帮助实现此目的,这是一个安全的文件传输实用工具。将本地的公钥部署到服务器上
# 确保服务器上存在.ssh 文件夹,若不存在则使用下面命令创建 ssh username@ip mkdir C:\Users\username\.ssh\ #通过scp将本地的公钥上传到服务器上并重命名为authorized_keys,注意此方法会覆盖原有authorized_keys scp C:\Users\username\.ssh\id_rsa.pub user1@ip:C:\Users\username\.ssh\authorized_keys
通过上述方法会覆盖原有authorized_keys文件,若要添加多个公钥,则通过记事本(更推荐使用vscode等文本编辑器)打开authorized_keys,把另起一行并把新公钥粘贴到authorized_keys文件中。
以下是windows中特有的操作
更改authorized_keys文件权限,不更改则无法通过密钥登录
# 远程通过ACL更改文件权限 ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在服务器端则可以通过以下命令修改,注意需要管理员权限。
#在服务器端修改authorized_keys文件权限 icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在Windows OpenSSH中,默认的授权密钥存放位置为ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目
#允许公钥授权访问,确保条目不被注释 PubkeyAuthentication yes #授权文件存放位置,确保条目不被注释 AuthorizedKeysFile .ssh/authorized_keys #可选,关闭密码登录,提高安全性 PasswordAuthentication no #注释掉默认授权文件位置,确保以下条目被注释 #Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
注意修改sshd_config需要管理员权限,修改完成后保存并推出。
在PowerShell(管理员)中重启sshd服务
#重启sshd,需要管理员权限 Restart-Service sshd
至此可以尽情享受windows服务器带来的各种不便了!enjoy!!!
最后附赠如何使用PowerShell卸载Windows OpenSSH
# 卸载 OpenSSH 客户端 Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 # 卸载 OpenSSH 服务端 Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
-
ssh远程连接Ubuntu 20.04
2021-09-16 22:44:40先重装WSL上的ssh服务 sudo apt-get remove openssh-server sudo apt-get install openssh-server 装好之后编辑ssh配置文件 ...PermitRootLogin yes # 可以root远程登录 PasswordAuthentication yes1. 首先在Ubuntu上安装openssh-server
sudo apt install openssh-server
安装好以后,ssh server应该已经开始运行了,可以用下面的命令检查ssh server的状态
systemctl status sshd
如图,可以看到状态是active(running)
另外,需要的时候,还可以利用systemctl命令打开(start)/关闭(stop)/重启(restart)ssh server,例如下面的命令就可以用来重启ssh server服务
sudo systemctl restart ssh
2. 利用Ubuntu自带的ufw 修改防火墙状态
首先开启防火墙
sudo ufw enable
打开传输ssh的端口(默认22)
sudo ufw allow ssh
设置ssh server开机启动
sudo systemctl enable ssh
3.现在就可以用 ssh username@IP远程连接电脑了
查询IP地址
ip a
这里的192.168.1.112即为电脑IP
所以ssh连接这台电脑的命令为⬇️
ssh linuxconfig@192.168.1.112
4.到上一步为止,其实已经可以实现连接功能了,但是为了安全着想,最好将ssh的端口从默认的22改为另一个大于1024的数字
编辑ssh server配置文件
sudo vim /etc/ssh/sshd_config
Port 2222 #设置ssh的端口号 PermitRootLogin yes # 可以root远程登录
打开设定的ssh端口
sudo ufw allow 2222/tcp
重启ssh server
sudo systemctl restart ssh
现在,可以连接你的电脑了
ssh -p 2222 linuxconfig@192.168.1.112
-
ssh 远程连接详解--(linux运维09)
2021-06-02 20:02:29ssh远程连接1. 概念介绍2.ssh 原理2.2 基于秘钥的连接过程3. 基于秘钥连接的部署过程3.1配置3.2 多台服务器的配置(脚本)3.2.1 几台主机的ip已知4. ssh服务配置文件 1. 概念介绍 1.ssh 安全的远程连接 数据信息是...ssh远程连接
1. 概念介绍
1.ssh 安全的远程连接 数据信息是加密的 默认可以root用户连接 默认端口 22
2.telent 不安全的远程连接,数据信息是明文的 默认端口23shell 每次连接登录到一个llinux中就是一个shell
2.ssh 原理
私钥:钥匙
公钥:锁头1.客户端 执行远程连接命令 2.客户端服务端 建立三次握手的过程 3.服务端 让客户端进行确认是否接收到服务端的公钥 4.客户端 进行公钥的确认 5.服务端 让客户端确认登录的用户 6.客户端 进行密码信息的确认 7.客户端 服务端 远程连接成功
私钥和公钥的作用:对数据信息进行加密处理,进行用户身份的验证
ssh 远程连接的方式
a 基于口令的远程连接方式 比较麻烦 来接不太安全
b 基于秘钥的方式进行连接 安全方便2.2 基于秘钥的连接过程
1. 客户端(管理端) 执行命令创建秘钥对 2. 客户端(管理端) 建立远程连接(口令),发送公钥信息 3. 客户端(管理端) 再次建立远程连接 4. 服务端(被管理端) 发送公钥质询信息(你要是能打开我的锁头吗) 5. 客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端 6. 服务端(被管理端) 接收到质询结果,建立好远程连接
3. 基于秘钥连接的部署过程
3.1配置
1.管理端创建密钥对信息
ssh-keygen -t dsa
2.管理端将公钥进行分发
ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.31
3.远程连接测试
ssh 172.1.31
3.2 多台服务器的配置(脚本)
3.2.1 几台主机的ip已知
ssh-copy-id -i /root/.ssh/id_pub.dsa root@172.16.1.$ip
假若这种方式就会出现交互式的:需要输入密码才能发送
还要确认yes 或 no
端口号问题1.安装 sshpass
yum -y install sshpass
2.解决免交互模式
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa root@172.16.1.$ip
3.端口号问题 -p
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 root@172.16.1.$ip
4.yes提示
man ssh /-o StrictHostKeyChecking
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_pub.dsa -p 22 root@172.16.1.$ip "-o StrictHostKeyChecking=no"
5.完整的脚本(默认的端口是22 不是则需要加上-p 端口号)
#!/bin/bash for ip in 31 41 do echo "====================start fenfa 172.16.1.$ip====================" sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.$ip "-o StrictHostKeyChecking=no" &>/dev/null echo "=================host 172.16.1.$ip success!!!!==================" echo "==================== end ====================" done
脚本的执行 (sh 文件名称)
sh fenfa_id.sh
检查是否成功
vim check_id.sh#!/bin/bash for ip in 31 41 do echo "====================check 172.16.1.$ip====================" ssh 172.16.1.$ip hostname echo "==================== end ====================" done
6.假若有很多台服务器,并且ip地址没有规律(默认的端口是22 不是则需要加上-p 端口号)
创建一个文件
touch ip.txt172.16.1.41 172.16.1.32 172.16.1.52 172.16.1.98 172.16.1.252 172.16.1.23
脚本:
#!/bin/bash for ip in `cat /server/scripts/ip.txt` do echo "====================start fenfa $ip====================" sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip "-o StrictHostKeyChecking=no" &>/dev/null echo "=================host $ip success!!!!==================" echo "==================== end ====================" done
4. ssh服务配置文件
4.1文件的一些中安要参数
/etc/ssh/sshd_config
port 22 端口号 ListenAddress 0.0.0.0 监听地址,能接受的远程访问请求 指定的箭筒地址只能是本地网卡上有的地址 PermitEmptyPasswords no 允许远程用户使用空密码进行连接,默认不允许 PermitRootLogin yes 不允许root用户进行远程连接 GSSAPIAuthentication no --- 是否开启GSSAPI认证功能 不用的时候关闭 UseDNS no --- 是否开启反向DNS解析功能 建议进行关闭
4.2远程服务防范入侵案列
1.使用秘钥登录,怒用密码登录
2.牤牛阵法
a 防火墙粉笔ssh
b 开启ssh只监听内网ip
3.尽量不给服务器的外网ip
4. 一个服务器的软甲安装最小化
5. 给系统的重要文件一个指纹,监控指纹即可 md5sum
6. 给他上锁 chattr +i4.3 sftp参数详解
ls 查看远程ftp服务器信息 cd --- 查看远程ftp服务器信息 lls 查看本地ftp客户端信息 lcd --- 查看本地ftp客户端信息 get --- 下载信息 put --- 上传信息 help --- 查看命令帮助 bye --- 退出ftp连接
-
Linux----SSH远程连接服务
2022-01-09 10:26:30适用于局域网网络设备的远程连接 2、管理Linux服务器的方式 本地管理 安装系统、故障修复 远程管理(使用频率较高) 3、确保Linux服务器正常启动SSH服务 确保SSH服务正常运行 SSH... -
ssh远程连接工具
2021-03-12 16:04:00ssh SSH 为 Secure Shell 的缩写,专为远程登录会话和其他网络服务提供安全性的...客户机安装 ssh客户端,远程连接 linux,通过向linux发送命令,远程控制linux 也可以上传文件、下载文件 查看是否安装ssh-server服务 -
ssh远程连接虚拟机
2021-08-02 10:47:03文章目录 VMware WorkStation 上安装 CentOS 8 ssh远程连接虚拟机 第一种:仅主机模式 真实物理机的配置 虚拟机的配置 物理真机中进行验证 ssh远程实现连接 第二种:NAT模式 真实物理机的配置 虚拟机的配置 物理真机... -
Ubuntu安装ssh远程连接服务
2021-11-16 15:38:322.安装SSH #安装ssh工具 sudo apt-get install openssh-server #启动 sudo service ssh start #查看是否启动成功 sudo ps -e | grep ssh 3.配置SSH服务 sudo vim /etc/ssh/sshd_config #找到下面相关配置: # ... -
kali系统怎么ssh远程连接
2021-11-10 13:35:15第一步:修改 /etc/ssh/sshd_config leafpad /etc/ssh/sshd_config 去掉# PasswordAuthentication yes: 第二步:去掉#PermitRootLogin,修改为yes 查看SSH服务状态: service ssh start /etc/init.d/ssh status ... -
Linux中怎么搭建SSH远程连接服务器
2019-02-09 20:58:59文章目录Linux中怎么搭建SSH远程连接服务器一、远程连接服务器:1、什么是远程连接服务器:2、远程连接服务器的功能3、常见的几种远程管理工具方式:二、连接加密技术: Linux中怎么搭建SSH远程连接服务器 一、... -
SSH远程连接工具
2020-02-06 13:37:41SSH远程连接工具 1. windows访问Linux虚拟机 PuTTY 是一款免费的远程登录工具,使用命令行方式对服务器进行操作,支持SSH连接。 开启Linux端SSH服务 安装ssh服务器 $ sudo apt-get install openssh-... -
VScode SSH远程连接失败
2021-11-15 10:48:22VScode重启更新后,SSH远程连接失败,反复尝试都不起作用。具体现象如下(因为解决以后log记录就没了,所以借了下别人的log): [08:48:13.513] Server installation process already in progress - waiting and ... -
ssh远程连接方法
2020-02-14 12:54:32远程连接服务原理 (1).客户端 – 服务端 请求建立远程连接 (2).服务端 – 客户端 确认连接信息 (3).客户端 – 服务端 确认连接 (4).服务端 – 客户端 发送公钥信息 确认密码信息 (5)客户端 – 服务端 接受... -
VS Code ssh远程连接服务器
2022-01-20 11:56:591. 首先先安装open SSH,此处使用PowerShell安装Open SSH。 右击开始菜单,选择管理员打开PowerShell,注意一定要是管理员打开,否则会出错!!! 然后执行下述cmdlet: Get-WindowsCapability -Online | Where-... -
使用ssh远程连接家庭电脑
2021-08-14 14:45:42为了实现远程连接到内网的电脑,我准备使用ssh反向连接来实现。 1. 环境介绍 主机A:内网电脑,这里我的系统是linux,用户名假设为test 主机B:有公网ip的设备,可以直接买一个vps,ip假设为10.x.x.x,用户名假设为... -
VS Code SSH远程连接Ubuntu
2022-04-07 00:09:54安装SSH服务并获取远程访问的IP地址 在Ubuntu系统中,“Ctrl+Alt+T”打开终端工具,执行如下命令安装SSH服务。 说明:如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息... -
怎么SSH远程连接云服务器
2021-08-18 20:40:23配置 双击Xshell,进入本地 ... 连接: 会话名称随便写一个,然后协议选SSH(我们通常云服务器远程连接都...如果不想用Xshell,可以使用win10提供的SSH远程连接服务。 在主页>应用>应用和功能>可选功能中,添加功 -
Kali-Linux-2021.1 SSH远程连接
2021-04-27 10:57:29文章目录Linux系统版本启用和启动SSH服务使用Xshell远程连接 Linux系统版本 └─# lsb_release --all No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2021.1 ... -
vscode使用ssh远程连接失败(及其他问题合集)
2022-04-15 15:39:22使用xshell或者mobaxterm等远程连接工具,去查看上面这个日志文件,例如: vim /home/user/.vscode-server/.dfd34e8260c270da74b5c2d86d61aee4b6d56977.log 找到其中的报错信息,例如我的是 [15:13:51] [Error: ... -
SSH远程连接客户端编码设置
2012-08-07 09:56:31该文档主要用于设置SSH远程连接客户端编码的编码格式,使中文也可以正常显示。 -
Win 10 ODBC SSH协议远程连接MySQL 3306.docx
2020-01-21 12:19:10通过win10自带OPENSSH,通过先建立SSH连接,再配置ODBC的方式,连接上远程Mysql 服务器。 -
SSH远程连接linux虚拟机详细步骤(超详细)
2021-04-15 22:35:53来来回回折腾两天,虚拟机不给力,总是打不开,做完折腾到两点多,终于把Redis安装上了,高兴坏了,以为今天能通了,谁知还是这个错,我这一路郁闷,晚上偶然间想到Xshell是ssh连接工具,是不是虚拟机里面没配置ssh... -
推荐好用的ssh远程连接 linux的工具
2020-11-16 16:55:24在连接linux的时候用了很多工具:Xshell SecureCRT PuttyFinalShellMobaXterm,还有很多其他的 其中Xshell SecureCRT都不是免费的,当然有办法破解,这个在网上一大堆,就不再说了,putty非常轻量级也很好用,也是... -
ssh远程连接Ubuntu
2019-09-09 17:51:06远程连接是一个常见的功能,本次实验介绍通过ssh进行命令行远程连接。 SecureShell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议,是一个安全且强大的远程连接工具... -
【Linux 主机ssh远程连接暴力破解详解】
2021-11-29 22:31:58昨天,安全老师布置了一个安全的小作业,在下想了想,做什么好呢?最近学了很多。那就做一个Linux主机远程连接的暴力破解密码的作业。读者请看好,不要睁开你的双杆。 ... -
ROS之旅(五)两台Ubuntu系统通过SSH远程连接(公钥连接,可显示图形界面)
2022-04-29 09:35:18两台Ubuntu系统通过SSH远程连接(公钥连接,可显示图形界面) -
vscode ssh 远程连接 更改端口
2021-11-22 16:53:03ssh 你的远程用户名@你的远程地址 -p 你的远程端口号 -
SSH远程连接
2020-05-15 17:18:44测试是否可以跟本机ping通R1——设置AAA认证模式R1——配置虚拟用户,使用SSH登录R1——开启SSH服务使用SecureCRT连接路由器路由器当SHH客户端登录路由器R2——设置接口的IP地址R2——使用SSH远程登录R1设备 ... -
ssh远程连接服务器常用命令
2019-04-12 14:47:46命令行下,使用ssh 远程登录服务器 ssh '用户名'@'IP地址' #不用加'号,这里是为了作区分 '用户名'@'IP地址''s password: xxx 项目所在服务器目录 /home/jimsir/sites/www.lovejim.cn/DjangoBlog/JimWeb/JimWeb ... -
设置linux ssh 远程连接与连接超时时间更改设置
2021-01-12 11:13:58用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常需要短了后再连接,比较麻烦。可以通过设置linux ssh配置解决 1.#vim /etc/ssh/sshd_config 2.搜索并修改(没有的话在末尾添加): ClientAliveInterval...