06_ Python基础到实战一飞冲天(一)–linux基础(六)–putty-xshell-scp-filezilla-ssh-免密登录-配置别名
一、远程管理命令-10-PuTTY的安装和exit退出登录
1、 Windows 下 SSH 客户端的安装
1) Putty
下载安装地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
2) XShell
下载安装地址:http://xshellcn.com
3)强烈建议从官方网站下载正式的安装程序,其他渠道下载的软件,有可能被黑客修改过。
2、Putty 客户端,远程登录测试
二、远程管理命令-11-XShell的安装-免费和设置语言
1、XShell 下载安装
1)强烈建议 XShell
官方网站下载安装包:http://xshellcn.com
2)双击打开安装包:Xshell-7.0.0137.exe 点击【下一步】。
3)点击【浏览】,选择安装位置,点击【下一步】,一路默认,点击【完成】完成安装。
2、用 XShell 测试远程连接
1)打开 XShell-7 点击【文件】—》【新建】。
2)输入虚拟主机 IP 地址,协议:默认SSH ,端口:默认 22 ,点击【连接】。
3)输入登录用户名,勾选【记住用户名】,点击【确定】。
4)输入用户密码,勾选【记住密码】,点击【确定】,登录成功。
三、远程管理命令-12-scp作用以及命令格式
1、 scp
命令(掌握)
1) scp 就是 secure copy
,是一个在 Linux 下用来进行 远程拷贝文件 的命令。
2) 它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P
而不是小写的。
2、scp 命令格式
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
四、远程管理命令-13-scp在Mac终端中的演示
1、scp 命令参数
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
2、注意:
1) scp
这个终端命令只能在 Linux
或者 UNIX
系统下使用。
2)如果在 Windows
系统中,可以安装 PuTTY
,使用 pscp
命令行工具或者安装 FileZilla
使用 FTP
进行文件传输。
3、scp 命令在 mac苹果电脑终端中的演示
五、远程管理命令-14-FileZilla在Windows下文件传输
1、 FileZilla
文件上传下载软件。
FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。具有图形用户界面(GUI)和很多有用的特性。
2、FileZilla
软件下载安装
1)官方网站下载:https://www.filezilla.cn/download/client
3、FileZilla
连接虚拟机,进行文件上传、下载测试。
1) FileZilla
在传输文件时,使用的是 FTP 服务
而不是 SSH 服务
,因此端口号应该设置为 21
。
2)确定你的 ubuntu 系统,是否已经安装了 vsftpd 服务。
#查看vsftpd服务状态
systemctl status vsftpd#如果没有安装vsftpd服务,先安装vsftpd 服务。
apt install vsftpd
3)在 你的 ubuntu系统中,已经启动 vsftpd 服务
#如果vsftpd服务没有启动,先启动vsftpd 服务。
systemctl start vsftpd
4)查看你的防火墙是否对 21 端口放行,或者关闭防火墙。
ubuntu 系统中,可以使用 ufw ( Uncomplicated Firewall ) 来管理防火墙。
#激活防火墙
sudo ufw enable#查看防火墙状态
sudo ufw status#让防火墙对21端口放行
sudo ufw allow 21/tcp#禁用防火墙
sudo ufw disable
六、SSH高级-01-确定目标/认识 .ssh目录
1、 SSH 高级应用(知道)
1) 免密码登录
2) 配置别名
提示:有关 SSH 配置信息都保存在用户家目录下的
.ssh
目录下。
2、认识 虚拟机下ubuntu系统,用户(如:python)家目录下的 .ssh
目录
cd ~
ls -ahlcd .ssh
ls -ahl #ssh -p 22 主机名@IP地址(如:mac苹果电脑的主机名是ubuntu ,IP地址是:192.168.6.130)
ssh -p 22 ubuntu@192.168.6.130
七、SSH高级-02-免密码登录设置步骤
1、在 ubuntu 系统,通过 ssh免密码登录到 mac苹果电脑终端。
1) 配置公钥
* 执行 `ssh-keygen` 即可生成 SSH 钥匙,一路回车即可。
如:cd ~
cd .ssh
ssh-keygen
一路回车即可。
2)上传公钥到服务器(把公钥传到 mac 苹果电脑)
* 执行 `ssh-copy-id -p port user@remote`,可以让远程服务器记住我们的公钥。
如下:
python@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub known_hostspython@ubuntu:~/.ssh$ ssh-copy-id itheima@172.16.140.1python@ubuntu:~/.ssh$ cat id_rsa.pub
2、配置好后,在 ubuntu 系统,通过 ssh免密码登录到 mac苹果电脑终端 演示
python@ubuntu:~/.ssh$ ssh-copy-id itheima@172.16.140.1
八、SSH高级-03-免密码登录工作原理
1、免密登录工作原理:示意图
2、什么是非对称加密算法
- 使用 公钥 加密的数据,需要使用 私钥 解密。
- 使用 私钥 加密的数据,需要使用 公钥 解密。
九、SSH高级-04-配置远程计算机的别名
1、配置别名
1) 每次都输入 ssh -p port user@remote
,时间久了会觉得很麻烦,特别是当 user
, remote
和 port
都得输入,而且还不好记忆。
2)而 配置别名 可以让我们进一步偷懒,譬如用:ssh mac
来替代上面这么一长串,那么就在 ~/.ssh/config
里面追加以下内容:
Host macHostName ip地址User itheimaPort 22
3)保存之后,即可用 ssh mac
实现远程登录了,scp
同样可以使用
2、配置别名 示例:
#查看python用户家目录下的 .ssh 隐藏目录
python@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts#创建配置别名的配置文件
python@ubuntu:~/.ssh$ touch config#再次查看python用户家目录下的 .ssh 隐藏目录
python@ubuntu:~/.ssh$ ls
config id_rsa id_rsa.pub known_hosts#打开并编辑config 配置文件
python@ubuntu:~/.ssh$ gedit config#输入以下内容:Host myserverHostName 172.16.140.1User itheimaPart 22#按 Ctrl + s 保存退出。
3、使用别名,在 ubuntu 系统上登录到 mac 苹果电脑的 itheima用户家目录,
python@ubuntu:~/.ssh$ ssh myserver
4、使用别名,把 ubuntu 系统上的 python 用户家目录的桌面文件夹,使用 scp 全部复制到 mac 苹果电脑上桌面的 demo 文件夹。
python@ubuntu:~/.ssh$ scp -r ~/Desktop myserver:Desktop/demo
十、用户权限-01-学习目标
1、用户权限相关命令:
read, write, excute,
chmod, chown, su, sudo,
groupadd, groupdel, cat /etc/group, chgrp -R,
useradd, adduser, passwd, userdel
2、目标
1) 用户 和 权限 的基本概念
2)用户管理 终端命令
3) 组管理 终端命令
4) 修改权限 终端命令
上一节关联链接请点击:
05_ Python基础到实战一飞冲天(一)–linux基础(五)----管道-shutdown-ip-ifconfig-ssh