我可以将SSH会话从编程语言传递到系统终端吗?

时间:2019-06-17 05:54:42

标签: ssh terminal

我使用100多个服务器,每个服务器都有不同的SSH凭据,并且密码经常更改。服务器和凭据列表存储在我们公司的内部Wiki中。每次我需要连接到其中一台服务器时,我都必须查看Wiki并复制粘贴信息,以便将系统终端的连接字符串放在一起。

由于我每天必须重复数十次此过程,因此我正在寻找一种优化此例程的方法。

使用任何编程语言,我都可以轻松提取信息并创建连接字符串。但是之后,我想以某种方式使用生成的连接字符串创建SSH会话,并在系统终端(在我的情况下为Ubuntu终端)中使用SSH会话。

您是否知道允许运行自定义登录来收集连接信息,然后使用它在系统终端中启动SSH会话的任何编程语言或方法?

1 个答案:

答案 0 :(得分:0)

正如@Mad Physicist所暗示的,可以通过将生成的ssh命令放入Bash脚本并使用Python运行该脚本来完成。

Bash脚本:

user@machine:~/$ cat ssh.sh
#!/usr/bin/env bash

ssh remote-user@10.10.10.1

bash脚本必须是可执行的,此演示才能正常工作。

user@machine:~/$ chmod +x ssh.sh

Python脚本:

user@machine:~/$ cat ssh.py 
import subprocess

subprocess.call("./ssh.sh", shell=True)

执行:

user@machine:~/$ python ssh.py 
remote-user@10.10.10.1's password: 
Last login: Mon Jun 17 07:31:45 2019 from 10.10.10.2

 Remote Server [~]
07:35:31 remote-user@remote-server $ echo hello
hello

 Remote Server [~]
07:35:41 remote-user@remote-server $ logout
Connection to 10.10.10.1 closed.

PHP还允许此功能:

user@machine:~/$ cat ssh.php
<?php

passthru("ssh remote-user@10.10.10.1");