Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在Bash脚本中嵌入密码_Linux_Bash_Shell_Scp - Fatal编程技术网

Linux 在Bash脚本中嵌入密码

Linux 在Bash脚本中嵌入密码,linux,bash,shell,scp,Linux,Bash,Shell,Scp,我正在运行一个测试脚本,其中需要将文件复制到目标嵌入式系统。但是,当从脚本运行此将文件复制到远程目标系统的命令时,系统会提示我输入目标板的管理员密码。如何使脚本自动执行,从而使脚本能够自行选择密码(从脚本中)并且我不必在每次运行脚本时手动输入密码 脚本的代码段形式如下所示: scp test.file1 <Target ip-address>:/home/bot21/test/. Password is prompted when the above command is run.

我正在运行一个测试脚本,其中需要将文件复制到目标嵌入式系统。但是,当从脚本运行此将文件复制到远程目标系统的命令时,系统会提示我输入目标板的管理员密码。如何使脚本自动执行,从而使脚本能够自行选择密码(从脚本中)并且我不必在每次运行脚本时手动输入密码

脚本的代码段形式如下所示:

scp test.file1 <Target ip-address>:/home/bot21/test/.

Password is prompted when the above command is run.
scp test.file1:/home/bot21/test/。
运行上述命令时,将提示输入密码。

正确的方法是使用基于密钥的身份验证。


如果链接中断,只需在谷歌上搜索它:“ssh无密码”或“ssh密钥验证”。尽管Toby发表了评论,但我认为链接到或指导如何自己搜索它比重复别人可以说得更好、更深入的内容要好。

正确的方法是使用基于密钥的验证。


如果该链接中断,只需谷歌搜索:“ssh无密码”或“ssh密钥验证”.尽管托比发表了评论,但我认为自己链接或指导如何搜索比重复别人能说得更好、更深入的内容要好。

你可以使用
sshpass
将密码传递给
scp
。类似于

sshpass -p passw0rd scp test.file1 <Target ip-address>:/home/bot21/test/
其他用户可以在
ps
中看到命令行选项(在运行时它被屏蔽,但在启动时不被屏蔽,您不能依赖它):

请注意,系统上的其他进程也可以使用
/proc/PID/environ
文件访问进程的环境网络变量


最后,将密码存储在文件中看起来可能是最好的主意,但仍然使用其他示例中所述的密钥是使用
ssh
的首选方法。您可以使用
sshpass
将密码传递给
scp

sshpass -p passw0rd scp test.file1 <Target ip-address>:/home/bot21/test/
其他用户可以在
ps
中看到命令行选项(在运行时它被屏蔽,但在启动时不被屏蔽,您不能依赖它):

请注意,系统上的其他进程也可以使用
/proc/PID/environ
文件访问进程的环境网络变量


最后,将密码存储在文件中看起来可能是最好的主意,但仍然使用其他示例中描述的密钥是使用
ssh
的首选方法。使用
-i
选项。手册页上说:

-i标识\u文件
选择从中获取公钥的标识(私钥)的文件 已读取密钥身份验证。此选项直接传递给 ssh(1)

这就是我们要做的:

scp -i /path/to/identity_file test.file1 <Target ip-address>:/home/bot21/test/
scp-i/path/to/identity\u file test.file1:/home/bot21/test/
详细描述了创建标识文件的过程


身份文件的访问权限的配置应确保系统中可能访问该文件的潜在用户能够读取该文件。同时请注意,在我们的示例中,这些用户应该能够遍历路径,即
/path/to
,以访问该文件。请使用
-i
选项。手册页说明:

-i标识\u文件
选择从中获取公钥的标识(私钥)的文件 已读取密钥身份验证。此选项直接传递给 ssh(1)

这就是我们要做的:

scp -i /path/to/identity_file test.file1 <Target ip-address>:/home/bot21/test/
scp-i/path/to/identity\u file test.file1:/home/bot21/test/
详细描述了创建标识文件的过程


身份文件的访问权限的配置方式应确保系统中可能访问该文件的潜在用户能够读取该文件。同时请注意,这些用户应该能够遍历路径,即在我们的示例中,ie
/path/to
,以访问该文件。

scp在后台使用SSH协议。如果可以无需密码即可连接到该服务器。查看SSH密钥和SSH-agent。scp在后台使用SSH协议。如果无需密码即可连接到该服务器,则无需提示即可连接到该服务器。查看SSH密钥和SSH-agent。虽然这在理论上可以回答问题,但要包括请在此处回答,并提供链接供参考。虽然这在理论上可以回答问题,但请在此处包含答案的基本部分,并提供链接供参考。