需要解决Permission Denied直接跳转目录
目录
由于虚拟机写代码或者编译过于卡顿(想过删除Linux的GUI界面),下决定搭建windows远程操作环境。之所以使用vscode remote SSH去远程操作Linux操作系统是因为除了敲代码和学习Linux也没有别的事在Linux系统上进行。(下图中虚拟机和Linux终端命令的截图都是CentOS7,后续我把Linux系统更新到Ubunut了,都是Linux就操作方式都一样),文章内容中Windows本机视为客户端,Linux虚拟机称为服务器
Visual Studio Code Remote SSH
如果使用别的IDE的朋友可以查一查别的SSH连接方法,使用vscode SSH主要是为了方便。首先安装好Visual Studio Code然后从扩展里搜索Remote SSH
下载好扩展之后就不管了,先设置Linux的SSH配置。
设置虚拟机的网路配置
环境:虚拟机使用的是Vmware Workstation,Linux操作系统是Ubuntu
步骤:
- 打开Vmware虚拟机的编辑虚拟机设置
- 确认虚拟机的网络设置(NAT模式或者桥接模式)
桥接模式或者NAT模式都可以
- 获取虚拟机的ip地址
打开Ubuntu系统,使用命令获取IP地址ifconfig 或者 ip addr
ip地址(后续使用的ip地址是192.168.56.134)
客户端--服务器:PING测试和SSH尝试
ping:
ping ip
ssh:
ssh name@ip
客户端终端信息说明客户端SSH配置文件config的第六行内容有误,直接尝试删除第六行内容:删除:PermitRootLogin yes
尝试再登录:
输入正确的密码也报错了,这是一个很常见的错误Permission Denied。
Permission Denied错误通常是因为服务器的SSH服务异常、SSH配置异常、防火墙和网络这四个问题引起的。
解决Permission Denied
从上述四个方面排除问题:
网络:
重新检查服务器虚拟机设置是否为NAT模式或者桥接模式。
防火墙:
命令关闭服务器防火墙
systemctl stop ufw.service //centos系统中防火墙是firewalld
检查SSH服务:
命令检查SSH服务状态(ssh是openSSH的客户端,sshd是服务端)
systemctl status sshd
显示:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-04-29 01:56:55 PDT; 1h 58min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 5110 (sshd)
Tasks: 1 (limit: 9387)
Memory: 1.0M
CGroup: /system.slice/ssh.service
└─5110 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
修改检查SSH配置文件:
进入./etc/ssh检查sshd_config配置文件搜索检查是否允许密码登录、是否允许root账户登录;
cd /etc/ssh
vim sshd_config
//vim命令模式
:/Permit
#PermitRootLogin prohibit-password改为PermitRootLogin yes
更改完成之后重新启动SSH服务
service sshd restart
大功告成-用VSCode Remote SSH去远程操作服务器
VSCode界面下按Ctrl+Shift+P进入命令行并输入Remote-SSH:Connect to Host...
进入之后可以直接点击刚才配置过的.ssh/config或者输入username@ip进行SSH连接。