#万丈高墙,起于垒土!
提到远程操作,我首先想到的的软件就是xshll,与远端建立ssh连接。
远程传文件则是xftp。
可如果你远程到远端,在远端的本地再控制其它本地设备怎么办?没有界面,只有终端怎么办?
当然直接可用ssh命令,来解决没有界面的问题。
ssh 全名Secure Shell(安全外壳协议)
ssh -p[端口] [user]@[ip]
ssh -p22 jiafeng@192.111.111.11
The authenticity of host '[192.111.111.11]:22 can't be established.
ECDSA key fingerprint is SHA256:24h.... (省略)
Are you sure you want to continue connecting (yes/no)? yes
#当你上面输入yes
Warning: Permanently added 'jiafeng@192.111.111.11' (ECDSA) to the list of known hosts.
jiafeng@192.111.111.11's password:
#键入密码就可远程到远程主机啦!
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.9.140-tegra aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
61 updates can be applied immediately.
32 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
Last login: Thu Jul 8 21:15:32 2021 from 127.0.0.1
远程过去了,ssh结束!no no no!
你想过没有,为什么直接让你连这个ip与port,就能ssh远程上?
其实ssh也是有客户端与服务端的,其中ssh服务是一个守护进程(demon),
系统后台会监听所有客户端的连接。
ssh服务端进程名称是sshd,有两部分构成:
# openssh (提供ssh服务)
# openssl (提供加密的程序)
#我们可以看到,我的本机只有 ssh-agent(没有ssh-server)
ps -ef | grep ssh
501 8573 1 0 9:38下午 ?? 0:00.05 /usr/bin/ssh-agent -l
501 8589 2630 0 9:53下午 ttys000 0:00.00 grep ssh
#这则是ssh-server
ps -ef | grep ssh
5471 5356 0 20:13 ? 00:00:00 sshd:jiafneg@notty
5489 5471 0 20:13 ? 00:00:00 /usr/lib/openssh/sftp-server
#安装ssh
sudo apt-get update
sudo apt-get install ssh
#或者
#客户端
sudo apt-get install openssh-client
#服务器
sudo apt-get install openssh-server
#安装成功,修改ssh配置文件
cd /etc/ssh
vim sshd_config
将下面的注释放开:
#修改Port可改变访问端口
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::
...
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#将上面的PermitRootLogin prohibit-passwor换成yes
PermitRootLogin yes
...
#启动服务
service ssh start
#或者
sudo /etc/init.d/ssh start
#查看服务
service ssh status
#如果输出中 Active:active(running)表示开启成功
#关闭/重启ssh服务
service ssh stop #关闭ssh服务
service ssh restart #重启ssh服务
这似乎解决了远程的问题,可我们想要从远端拷贝文件到本地怎么办?
ssh服务已经为你准备好了scp (secure copy)
scp是基于ssh登陆进行安全远程拷贝文件及目录命令
1.将本地文件拷贝到远程:scp 文件名 username@ip:远程文件路径
2.从远程将文件拷回本地:scp username@ip:文件名本地路径
3.将本地目录拷贝到远程:scp -r 目录名 username@ip:远程路径
4.从远程将目录拷回本地:scp -r username@ip:目录名本地路径
#复制本地文件到远端,反过来就可以从远端复制到本地
scp /home/jaifeng/tcp/client.c root@192.168.111.111:/home/jiafeng/socket
#复制本地目录到远端,反过来就可以从远端复制到本地 (注意 /)
scp -r /home/jaifeng/tcp/ root@192.168.111.111:/home/jiafeng/socket/
#End 2021/8/26 23:52
转载请注明:XAMPP中文组官网 » Linux 远程常用命令大全