前面看到#340日报的如下内容:
![img](https://tva1.sinaimg.cn/large/008i3skNgy1gq6tea1flhj30eg0cbtb3.jpg)
> ~~就我个人来说,ssh进省队对我的意义,不能不说非常重大。 那么, 要想清楚,ssh进省队,到底是一种怎么样的存在。 吉姆·罗恩曾经说过,要么你主宰生活,要么你被生活主宰。带着这句话,我们还要更加慎重的审视这个问题: 莎士比亚曾经说过,本来无望的事,大胆尝试,往往能成功。这不禁令我深思。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 生活中,若ssh进省队出现了,我们就不得不考虑它出现了的事实。 对我个人而言,ssh进省队不仅仅是一个重大的事件,还可能会改变我的人生。 ssh进省队因何而发生? 所谓ssh进省队,关键是ssh进省队需要如何写。~~
所以,我想出一篇关于ssh的真实介绍。
## ssh的定义
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。(reference[1]:ssh (安全外壳协议))
[1]: https://baike.baidu.com/item/ssh/10407 "ssh (安全外壳协议)"
## 如何使用ssh
像#340中所述的`NOI Linux`是自带ssh的(准确来说,所有的POSIX系统都自带有ssh)
这里用我的Mac进行示范:
### 登陆远程机
首先,打开terminal(即:终端)
如果您不知道ssh是如何使用的,~~请在terminal内输入`man ssh`,自己去读英语~~,那么他的命令行格式是:
```bash
ssh 用户名@主机IP
```
假如我要远程登录IP为`149.28.32.10`,用户名为root时,就应该输入
```bash
ssh
[email protected]
```
像这样:
![image-20210504235203977](https://tva1.sinaimg.cn/large/008i3skNgy1gq6tzenatij30v80jygph.jpg)
您应当知道这个密码,输入后登陆完成。
![image-20210504235320550](https://tva1.sinaimg.cn/large/008i3skNgy1gq6u0qoe32j30ve0jy0z5.jpg)
### 使用ssh
#### 写代码
您可以先使用`cd`命令转换到您想使用的工作目录。
比如说,我这里使用`./tmp`作为目录,就是这样的:
![image-20210504235623175](https://tva1.sinaimg.cn/large/008i3skNgy1gq6u3ws2e8j30vc0k27b8.jpg)
当然,使用`cd /tmp`也是可以的,能达到同样的效果。
结下来,如果您要进行文本编辑的话,推荐vim。
在界面中输入`vim 1.cpp`可以创建`1.cpp`并进行编辑。
![image-20210505000132493](https://tva1.sinaimg.cn/large/008i3skNgy1gq6u99i52uj30ve0k6ad7.jpg)
将您要编辑的文件输入完成后,输入`:wq`(write&quit)进行保存并关闭vim。
![image-20210505000814364](https://tva1.sinaimg.cn/large/008i3skNgy1gq6ug8g16gj30v60kctch.jpg)
~~对没错它还有自动语法高亮功能~~
退出后,进行编译运行:`g++ 1.cpp -o 1 && ./1`(因为博主的远程机过于低配,g++装不上去,所以后面的操作都在与之同理的macOS上运行。)
![image-20210505001407315](https://tva1.sinaimg.cn/large/008i3skNgy1gq6umcu39tj30uw0kagwu.jpg)
这样的时候,您就可以输入您的输入数据了:
![image-20210505001555810](https://tva1.sinaimg.cn/large/008i3skNgy1gq6uo8fqrxj30v20iodq1.jpg)
输出不用我展示了吧(
#### 传文件
~~这边建议使用ftp呢(~~
比如说,您要将本地的`1.cpp`传到`149.28.32.10`中`root`用户的`/tmp`文件夹中,您应该这样:
![image-20210505002011979](https://tva1.sinaimg.cn/large/008i3skNgy1gq6usompllj30v60k449m.jpg)
这样就是好了:
![image-20210505002104345](https://tva1.sinaimg.cn/large/008i3skNgy1gq6utlt6zfj30vc0kcwph.jpg)
### 注意
请勿在各种正式考试中使用ssh,如使用,后果本人概不负责。
ps:关闭ssh可以用如下命令(其实这个是删除ssh服务的,从根源解决)
```bash
sudo rm -f /etc/init/ssh.conf
```
或者:
```bash
service ssh stop
```
或者:
```bash
pkill sshd
```
## bonus
其他Linux命令:
1. `cat`
`cat`命令是用来显示文件内容的。
用法:(假设要显示`1.cpp`)
```bash
[root@vultr ~]# cat 1.cpp
```
2. `sudo`
严格来说,这不是个命令。
在任何命令前加`sudo`,那么这个命令就会被用最高权限运行。
3. `ls`
`ls`命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。(reference[2]:ls命令 – 显示指定工作目录下的内容及属性信息)
用法:
1. 列出所有文件(包括隐藏文件):
```bash
[root@vultr ~]# ls -a
```
2. 列出所有文件(包括隐藏文件) + 所有文件的详细信息:
```bash
[root@vultr ~]# ls -al
```
[2]: https://www.linuxcool.com/ls "ls命令 – 显示指定工作目录下的内容及属性信息"
4. `rm`
`rm`是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。` rm`也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在`/`(根目录)下执行`rm * -rf`(递归删除))。**所以,我们在执行`rm`之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。**(reference[3]:rm命令 – 移除文件或目录)
用法:
1. 删除前逐一询问确认:
```bash
[root@vultr ~]# rm -i test.txt.bz2
rm: remove regular file `test.txt.bz2'?
```
等同于:
```bash
[root@vultr ~]# rm test.txt.bz2
rm: remove regular file `test.txt.bz2'?
```
2. 直接删除,不会有任何提示:
```bash
[root@vultr ~]# rm -f test.txt.bz2
```
[3]: https://www.linuxcool.com/rm "rm命令 – 移除文件或目录"
**last but not least:**
**彩蛋:**
![image-20210505005356749](https://tva1.sinaimg.cn/large/008i3skNgy1gq6vrstnh8j30gc06a76r.jpg)
![](https://i.loli.net/2021/09/18/jzxPD7fmGSOCRUI.png)
## upd1
time: 2021/09/14 21:50
感谢纠错
![](https://tva1.sinaimg.cn/large/008i3skNgy1gughv01vs0j62lc0m0jw902.jpg)