SSH(选项)(参数)
-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源ip地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。
ssh -p 2222 用户名@ip
1.使用expect自动登录ssh
#!/usr/bin/expect
set user [lindex $argv 0]
set password 密码
if { $user == "用户1" } {
spawn ssh -p 2222 用户1@47.98.39.229
expect "用户1"
send "$password\n"
} else {
spawn ssh -p 2222 用户2@47.98.39.229
}
interact
2.ssh保持长连接的方式
1.修改server端的etc/ssh/sshd_config
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应
systemctl reload sshd
2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下)
ServerAliveInterval 60 #client每隔60秒发送一次请求给server,然后server响应,从而保持连接
ServerAliveCountMax 3 #client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,server不会不响应
3.在命令参数里ssh -o ServerAliveInterval=60 这样子只会在需要的连接中保持持久连接, 毕竟不是所有连接都要保持持久的
SFTP(选项)(参数)
-B:指定传输文件时缓冲区的大小;
-l:使用ssh协议版本1;
-b:指定批处理文件;
-C:使用压缩;
-o:指定ssh选项;
-F:指定ssh配置文件;
-R:指定一次可以容忍多少请求数;
-v:升高日志等级。
1.sftp使用上传方法:
在本地终端输入:
sftp -P 2222 用户名@ip
ls 显示有权限的服务器
第一步:进入目标服务器
cd demo1 进入目标服务器
ls 可查看目标服务器的目录
第二步:显示本地目录及文件夹(用法,在ls cd前面加“l”)
lls 可查看本地的目录
lcd Downloads
第三步:上传文件
put dist.zip
第四步:找到文件
到目标服务器,上传的文件位置是:/tmp
文件拷贝: sudo cp /tmp/dist.zip /phpweb/punchcard_nuxt
2.下载
get 服务器文件 本地文件
SCP(选项)(源文件 目标文件)
直接用 scp 注意端口号P是大写,默认22号端口
-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。
1.远程拷贝到本服务器
scp -P 60022 用户名@ip:/data/test .
2.本服务器拷贝到远程
scp -P 60022 /test 用户名@ip:/data/test
网友评论