putty安装和使用
1 安装
- putty是一款windows上很好用的连接远程服务器的小工具。下载地址:网址。进入网址,找到如下内容下载即可:
- 我们可以打开这些应用的位置,默认位置是:
C:\Program Files\PuTTY
,这个路径已经加入到环境变量中了,因此可以使用这个路径下的.exe
作为命令,该文件夹中的内容如下:
-
这里简单说明一下次文件夹中
6
个.exe
文件的作用:-
putty.exe
:远程连接服务器,最为常用; -
puttygen.exe
:生成公钥和私钥,用于免密登陆远程服务器; -
psftp.exe
:用于在本地、远程服务器之间相互传输文件; -
pscp.exe
:和psftp.exe
作用一样,不过命令不同,该命令类似于linux
中的scp
命令; -
plink.exe
:用于在本地执行远程服务器的命令; -
pageant.exe
:用于管理秘钥。
-
-
下面介绍上图框出来的五个工具的使用方式。
2 使用
2.1 putty.exe
- 这是
putty
套件中最为常用的工具,打开的初始界面如下:
- 这里输入远程服务器的
IP
地址,以及登陆的端口号(SSH
默认端口号为22
),点击Open
后,在弹出的界面中输入账号和密码后就可以登陆。如下图:
- 这里演示的登陆阿里云服务器,用户名为
wxx
,输入的密码会隐藏(即我们输入的密码不会显示)。
- 如果要登陆多台服务器,我们可以保存为
session
,如下图,保存了两个session
(分别叫做:aliyun、django
):
- 输入
IP
地址、端口、以及会话名称,最后保存即可,如下图:
-
可以看到上面登陆终端后,字体很小,因此需要设置终端中字体的大小,这里很可能设置完成后,下次重启又会失效,这里介绍如何避免这个问题。
-
我这里一共有三个
session
(两个自己创建的,一个默认的Default Settings
),每个都需要单独设置,可以理解为每个session
的配置都是独立的。 -
这里以设置
aliyun
这个session
为例,主要讲解如何设置终端的字体大小,步骤如下:
(1)点击aliyun
,然后点击Load
按钮,如下图:
(2)点击左侧菜单栏中的Window->Appearance
,并改变其中的字体大小,如下图:
(3)点击左侧菜单栏中的Session
,之后点击右侧的Save
按钮,如下图:
-
这样之后及时重启
putty
,对于aliyun
这个session
,设置都是生效的。其它的设置也是类似的步骤,只需要改变第(2)步即可。例如后面2.2
节中私钥位置的配置。 -
注意:后面的
psftp、pscp、plink
命令都是针对Default Settings
这个session
进行操作的。这个后面还会说到。
2.2 puttygen.exe
-
我们每次登陆远程服务器都需要输入用户名和密码,特别是输入密码,十分麻烦,这个工具就是要解决这个问题的。
-
点击
puttygen.exe
,默认界面如下:
- 点击
Generate
按钮,鼠标在空白处随意移动,生成公钥和私钥,演示如下:
- 这里最终生成的界面如下:
-
可以看到加密算法使用的是
RSA
算法,关于该算法的讲解可以参考:RSA公钥加密算法。该算法会生成公钥和私钥,公钥可以公开,私钥不能公开。 -
需要将公钥上传到服务器上,私钥保存到本地即可。点击上图中的
Save private key
,如果弹出警告框,点击是即可,然后给保存的私钥命名保存即可。如下图是需要保存的私钥,和公钥(直接复制到txt
中即可):
- 我在电脑中公钥和私钥保存位置如下(私钥是点击按钮生成的,公钥是新建
txt
文件,然后将内容复制进去的):
- 接着可以配置免密登陆,首先使用用户名和密码登陆服务器,创建
.ssh
文件夹,文件夹中创建authorized_keys
文件,该文件用于存放之前生成的公钥(可以存放多个公钥),命令如下:
mkdir .ssh
cd .ssh
touch authorized_keys
-
然后将之前生成的公钥复制到文件
authorized_keys
中。 -
之后需要配置需要免密登陆的
session
,设置只有第(2)步操作不同,如下图:
-
之后记得保存设置。
-
然后登陆,可以发现,只需要输入用户名即可登陆远程服务器,如下图:
2.3 psftp.exe
-
用于在本地和服务器之间传递文件,可以在
cmd
窗口中直接输入命令psftp
,需要输入用户名、密码进行登陆。如果在putty
中配置了免密登陆,则只需要输入用户名即可。 -
注意:这里默认连接的远程服务器是
putty
中Default Settings
中对应的服务器。 -
使用该命令进入的界面如下,可以通过
help
查看提供的命令:
- 常用命令:
pwd # 在远程服务器中显示当前所在目录
cd # 在远程服务器上切换目录
ls # 显示远程服务器文件夹中的文件
lpwd # 在本地中显示当前所在目录
lcd # 在本地切换目录
!dir # 显示本地文件夹中的文件
put # 上传本地文件到服务器
get # 下载服务器文件到本地
- 文件、文件夹的传输:
(1)将本地文件上传到服务器中(D:\psftp\local_file.txt --> /home/wxx/
):
put d:\psftp\local_file.txt
(2)将远程服务器上的文件下载到本地(/home/wxx/.bashrc --> D:\psftp\
)
lcd d:\psftp # 本地目录切换
get .bashrc
(3)将本地文件夹上传到服务器中(D:\psftp\local_test\ --> /home/wxx/
):
put -r d:\psftp\local_test
(4)将远程服务器上的文件夹下载到本地(/home/wxx/.ssh/ --> D:\psftp\
)
lcd d:\psftp # 本地目录切换
get -r .ssh
2.4 pscp.exe
-
和
psftp
功能基本一致,用于本地和远程之间文件传输。 -
这里使用另外一台服务器
django
演示,这台服务器是通过docker
搭建的,搭建在aliyun
服务器上,有端口映射,aliyun
上的20000
端口映射到了docker
内部的22
端口。 -
如果没指定端口,则端口是
putty
中Default Settings
这个session
对应的端口。 -
文件、文件夹的传输(直接在
cmd
中输入下面的命令即可):
(1)将本地文件上传到服务器中(D:\psftp\local_file.txt --> /home/acs/
):
pscp -P 20000 d:\psftp\local_file.txt acs@112.126.78.186:/home/acs/
(2)将远程服务器上的文件下载到本地(/home/acs/.bashrc --> D:\psftp\
)
pscp -P 20000 acs@112.126.78.186:/home/acs/.bashrc d:\psftp\
(3)将本地文件夹上传到服务器中(D:\psftp\local_test\ --> /home/acs/
):
pscp -P 20000 -r d:\psftp\local_test acs@112.126.78.186:/home/acs/
(4)将远程服务器上的文件夹下载到本地(/home/acs/.ssh/ --> D:\psftp\
)
pscp -P 20000 -r acs@112.126.78.186:/home/acs/.ssh d:\psftp\
2.5 plink.exe
-
用于在本地执行远程服务器的命令,直接在
cmd
中执行即可。 -
如果没指定端口,则端口是
putty
中Default Settings
这个session
对应的端口。 -
在本地执行
aliyun
上的命令:
plink -P 22 wxx@112.126.78.186 "ls -al"
- 在本地执行
django
上的命令:
plink -P 20000 acs@112.126.78.186 "ls -al"