ssh工具常用小技巧

文件传输

scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证

scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名@IP地址或主机名)>:<文件路径>

#复制文件
# 将本地的1.txt复制到192.168.3.33主机的/home/yuanduan/目录下
scp /home/local/1.txt remote@192.168.3.33:/home/remote/

# 将192.168.3.33主机的/home/remote/目录下2.txt复制到本地的/home/local/
scp remote@192.168.3.33:/home/remote/2.txt /home/local/

#---------------------------------------------------------------------
# 复制文件夹
# 将本地的111文件夹复制到192.168.3.33主机的/home/yuanduan/目录下
scp -r /home/local/111 remote@192.168.3.33:/home/remote/
# 加上-v参数可以显示详情
scp -r -v /home/local/111 remote@192.168.3.33:/home/remote/

screen实现关闭ssh后继续查看输出

ssh连接机器后,运行如下的python文件,我们会在终端不断看到输出:

import time
for i in range(10000):
	time.sleep(2)
	print(i)

如果关闭当前终端,程序会在服务器上终止。使用screen工具可以解决这个问题。screen可以在服务器后台以session的方式运行着多个来自远地机的远程终端,即使远地机的ssh连接的终端关闭,远地机也可以再次通过screen工具还原之前的终端界面。
首先要在服务器端安装screen:

sudo apt-get install screen

本机连上服务器后,输入

   screen

后点击空格创建一个session界面,此时在终端运行的东西都在这一个session中。运行程序:

python test.py

终端会不断输出。输入ctrl+A,之后输入D,此时当前的session会分离出去在后台(处于Detached状态),当前界面重新回到普通的终端界面。此时输入如下命令可以显示目前所有的session:

screen -ls

在这里插入图片描述
输入screen -r + 编号进入其中的session:

screen -r 7590

进入session后,使用screen -ls发现对应的的session7590状态是Attached,表示目前的界面在这个session中。
在这里插入图片描述
输入ctrl+A,之后输入D,重新回到普通的终端中。注意,只有在session的终端(screen模式)里才会有ctrl+A,D的命令。ctrl+A,D的命令也可以使用

screen -d 7590

来代替,表示detach当前的session7590。

结束screen进程,直接kill+前面的编号:

kill 3119

screen进程过多时,采用如下命令来修改screen进程的名称:

screen -S my_screen_name 修改会话名称

sshpass

是一个可以在ssh连接命令中指定密码的工具,允许用 -p 参数指定明文密码,然后直接登录远程服务器。支持密码从命令行,文件,环境变量中读取。
安装此工具:

sudo apt-get install sshpass

此工具的使用帮助:

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -P prompt     Which string should sshpass search for to detect a password prompt
   -v            Be verbose about what you're doing
   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

在连接远程服务器时,使用如下命令就可以在原有ssh命令上加上连接密码:
其最终XXX是远程服务器密码:

sshpass -p XXX ssh user@IP
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页