1、默认端口
sftp和ssh的默认端口是22
2、sftp连接服务端方式
1、直接连接,-P指定端口
sftp -P 22 myname@ip
再输入yes
再输入密码
[yiifung@master02 ~]$ sftp -P 22 yiifung@192.168.168.128
yiifung@192.168.168.128's password:
Connected to 192.168.168.128.
sftp>
2、第一次连接需要询问是否要在known_hosts文件中记录对方机器的指纹,一旦记录之后,后续不再询问
[yiifung@master02 ~]$ sftp -oPort=22 yiifung@192.168.168.128
The authenticity of host '192.168.168.128 (192.168.168.128)' can't be established.
ECDSA key fingerprint is SHA256:oU89b+M9k9nmrvN4S4tVfhnk2jKNcLUxu/n7D0id/6Q.
ECDSA key fingerprint is MD5:17:76:e5:ff:05:bc:5f:3d:3d:ff:6b:1a:3e:a6:ab:9c.
Are you sure you want to continue connecting (yes/no)?
[yiifung@master02 ~]$ cd .ssh/
[yiifung@master02 .ssh]$ cat known_hosts
192.168.168.128 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBORIZn/fiW4sk3R1ithx3QQiO+WAVZJWn8Lcz9zWsMAAxm1ORajsSWHlnsUvYYLTjWKRaVxyAeGsCHKSgKhslKs=
[yiifung@master02 .ssh]$
3、不询问,直接记录的方式,使用-oStrictHostKeyChecking=no 选项
[yiifung@master02 .ssh]$ rm -f known_hosts
[yiifung@master02 .ssh]$ cd
[yiifung@master02 ~]$ sftp -oPort=22 -oStrictHostKeyChecking=no yiifung@192.168.168.128
Warning: Permanently added '192.168.168.128' (ECDSA) to the list of known hosts.
yiifung@192.168.168.128's password:
Connected to 192.168.168.128.
sftp>
4、免密方式登录
详情请见免密登录
3、传递文件
1、开始一个交互session在远程机器的一个指定的目录中
sftp [user@]host[:dir[/]]
[yiifung@master02 ~]$ sftp -oPort=22 -oStrictHostKeyChecking=no yiifung@192.168.168.128:test
yiifung@192.168.168.128's password:
Connected to 192.168.168.128.
Changing to: /home/yiifung/test
sftp> pwd
Remote working directory: /home/yiifung/test
sftp>
2、直接获取文件,不需要任何交互动作
sftp [user@]host[:file …]
[yiifung@master02 test]$ sftp -oPort=22 -oStrictHostKeyChecking=no yiifung@192.168.168.128:test/test1
yiifung@192.168.168.128's password:
Connected to 192.168.168.128.
Fetching /home/yiifung/test/test1 to test1
[yiifung@master02 test]$ ll
total 0
-rw-rw-r--. 1 yiifung yiifung 0 Jul 8 04:40 test1
[yiifung@master02 test]$
3、直接获取文件,并放到指定的目录并重新命名,不需要任何交互动作
该方式,目录必须提前存在,否则会报错
[yiifung@master02 test]$ mkdir 2023
[yiifung@master02 test]$ sftp -oPort=22 -oStrictHostKeyChecking=no yiifung@192.168.168.128:test/test1 2023/test2
yiifung@192.168.168.128's password:
Connected to 192.168.168.128.
Fetching /home/yiifung/test/test1 to 2023/test2
[yiifung@master02 test]$
yiifung@master02 test]$ ll
total 0
drwxrwxr-x. 2 yiifung yiifung 19 Jul 8 04:43 2023
-rw-rw-r--. 1 yiifung yiifung 0 Jul 8 04:40 test1
[yiifung@master02 test]$ ll 2023
total 0
-rw-rw-r--. 1 yiifung yiifung 0 Jul 8 04:43 test2
[yiifung@master02 test]$
4、batch模式执行(-b batch),此模式需要免密登录
[yiifung@master02 test]$ cat batch
get test1
get test2
[yiifung@master02 test]$ sftp -oPort=22 -oStrictHostKeyChecking=no -b batch yiifung@192.168.168.128:test
sftp> get test1
sftp> get test2
sftp>
[yiifung@master02 test]$ ll
total 4
-rw-rw-r--. 1 yiifung yiifung 21 Jul 8 05:03 batch
-rw-rw-r--. 1 yiifung yiifung 0 Jul 8 07:03 test1
-rw-rw-r--. 1 yiifung yiifung 0 Jul 8 07:03 test2
[yiifung@master02 test]$