我正在将一个期望文件写入scp文件。但是我每次要做的就是在终端输入主机名和密码。另一种方式是以硬编码方式设置密码。我想知道是否有办法从笔记本电脑上的定位文件中读取配置。当我与他人共享脚本时会更好。
答案 0 :(得分:0)
首先,查看是否可以为我们设置到服务器的无密码连接(请与服务器管理员联系,并查看您的ssh-keygen
和ssh-copy-id
手册页)
否则,将登录凭据写入磁盘会降低安全性,但有时是不可避免的。确保您不授予该文件对他人(chmod 600 config_file
的读/写权限
假设您想要一个包含以下内容的配置文件:
set host hostname
set user username
set pass "user password"
然后,您只需编写脚本source
即可在Tcl解释器中设置这些变量。
为了安全起见,如果文件被某些恶意命令破坏,则可以使用Tcl“安全解释器”
interp create -safe safeInterp
safeInterp invokehidden source $configFile
# extract the variables from the safe interp
lassign [safeInterp eval {list $host $user $pass}] host user pass
spawn scp $user@$host:/path/to/remote/file /local/file
...