Articles of ssh

R – 通过ssh连接并执行命令

我想通过SSH连接到networking中的某些设备。 必要条件是: 它必须运行一个命令并捕获R中的ssh会话的输出(或者用bash或者其他的编程语言,但是我更喜欢用R语言) 它必须input一个纯文本密码(因为这个设备以前没有被访问过,所以不能用rsa密钥对来修改),所以ssh.utils软件包不符合这个要求 sshpass不能使用,因为我注意到它不适用于我testing的一些设备。 我已阅读所有这些post,但我找不到一个有效的方式来执行它: 链接1 , 链接2 , 链接3 , 链接4 我知道要求很难完成,但感谢您的努力! 编辑: 对不起,如果我没有让自己理解。 我的意思是我在R本地工作,我想通过SSH连接到我所有networking中的+3000设备。 它是Ubiquiti设备,唯一的开放端口是80和22。 如果ssh不起作用,我将使用R的RSelenium软件包,并从端口80中提取信息。但首先我会尝试使用ssh pory 22,因为它比打开模拟浏览器更有效率。 所有这些Ubiquiti设备的大问题是,他们有一个密码login。这就是为什么需要2号。 当我必须进入我知道的服务器时,我花时间设置rsa密钥对,以便每次连接到特定的服务器时不必input密码,但这是不可能的(至less对我来说是不可能的)用这些关键字configuration所有+3000 Ubiquiti设备。 这就是为什么我不使用snmp的原因,例如,因为这个设备可能会激活它,或者snmpconfiguration是错误的。 我的意思是,我必须使用默认激活的东西,并以某种方式sorting。 只有端口80和端口22被激活,我知道所有的用户和密码的设备。 而sshpass是UNIX / Linux中的一个实用程序, 就像这个链接解释说 ,它适用于服务器,但不适用于Ubiquiti设备,只要我已经testing过了。 所以我不能使用它。 我需要从中提取输出的命令是mca-status 。 简单地通过input到控制台使它打印一些统计数据,我想从Ubiquiti设备。 请纠正我,如果我错了我已经发布的东西。 谢谢。

Gitlab ce ssh瞳孔

嘿,我在Ubuntu 14.04 64Bit我的gitlab服务器的麻烦通过SSHbuild立连接无法正常工作。 用相同的密钥通过SSH连接到服务器工作正常。 github的关键是保存在 /var/opt/gitlab/.ssh/authorized_keys 并开始 命令=“/ opt / gitlab / embedded / service / gitlab-shell / bin / gitlab-shell key-4”,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa […] auth.log提供以下消息 input_userauth_request:无效的用户git [preauth] 连接由139.13.201.xxxclosures[preauth] 来自ssh -vt的输出 OpenSSH_7.1p2, OpenSSL 1.0.2e 3 Dec 2015 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to xxx.com [85.214.233.xxx] port 22. debug1: Connection established. debug1: identity file /home/hsync/.ssh/id_rsa […]

生成要在不同计算机上使用的SSH密钥

我有几乎每天使用2个系统。 一个是位于办公室内的桌面,另一个是笔记本电脑。 两者都运行Ubuntu LTS linux。 我知道在一个系统上生成的SSH密钥可以复制到另一个系统,并且不会像推/提交一样破坏任何东西。 但我不想这样做。 我需要跟踪从哪个系统推送/提交代码 。 为了实现这一点,我添加了2个差异。 邮件到我的GitHub帐户。 john+desktop@gmail.com john+laptop@gmail.com 现在我需要生成差异。 桌面和笔记本电脑上的SSH密钥,但我不知道该怎么做。 我的一个朋友build议我阅读这篇文章。 第2步显示以下代码 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # Creates a new ssh key, using the provided email as a label Generating public/private rsa key pair. 上面的命令提供了通过电子邮件地址,但它提到了电子邮件地址作为label 。 我不明白命令的label部分。 下面的命令应该解决我的查询? ssh-keygen -t rsa -b 4096 -C "john+desktop@gmail.com" ssh-keygen -t […]

设置ssh连接2台PC并使用MPI

我在这里是因为我在使用本指南提出的其他问题中发现了不同的问题。 首先我有一台电脑(我想用它作为主人)叫: timmy@timmy-Lenovo-G50-80 。 我的另一台电脑是一台虚拟机,总是用linux mint调用: test@test-VirtualBox ,我想用它作为奴隶。 我到现在为止所做的是: 安装所需的数据包(两台PC): sudo apt-get install openssh-server openssh-client 更改/etc/ssh/sshd_config文件里面:(只有主) 服务器的端口从22到2222 设置PubkeyAuthentication yes (所以没有改变) 移除评论: Banner /etc/issue.net 停 当我执行这个命令时,我被困住了: ssh-copy-id username@remotehost 我想,阅读所写的内容,我必须执行如下操作: ssh-copy-id timmy@timmy-Lenovo-G50-80 但: 从timmy @ timmy-Lenovo-G50-80一切正常,我可以连接到自己(不是我真正想要的) 从test @ test-VirtualBox它告诉我ERROR: ssh: Could not resolve hostname timmy@timmy-Lenovo-G50-80: Name or service not known 最后,为了连接这两台PC,我需要做些什么?

触摸命令。 没有权限

我能够通过SSH连接到我的学校服务器。 我有一个任务,我应该使用触摸命令来创build一个新的文件。 但是它拒绝返回权限。 其他人也能做同样的事情。 虽然为什么我一直得到这个错误? 以下是来自terminal的input。 Last login: Tue Aug 23 09:16:18 on ttys000 Dominiks-Air:~ fsociety95$ ssh djaneka1@navajo.dtcc.edu djaneka1@navajo.dtcc.edu's password: Last login: Tue Aug 23 09:16:35 2016 from pool-72-94-210-193.phlapa.fios.verizon.net Navajo是为员工,教师和学生提供的Linux shell服务器。 操作系统是RedHat Enterprise Linux 5。 作为邮件客户端已经提供了Alpine,Pine的替代品。 在命令提示符下运行“pine”。 该服务器还为用户提供networking空间。 网页可以存储在〜/ www目录中。 这也可以通过将驱动器映射到\ navajo \ homepage来访问。 您的首页的url是http://user.dtcc.edu/~username/ 。 您的主目录也可以通过映射到\ navajo \在Windows中访问。 如果出现任何问题,请发送邮件至path​​@dtcc.edu。 不能chdir到主目录/ u / d / […]

运行远程命令后,ssh会话不会closures

我在网上看到了类似的问题,但是没有一个答案是有效的,希望新的请求能够揭示答案。 我试图运行一个远程查询在Linux上,我可以做的问题是我保持连接到远程服务器。 我已经在脚本中设置了-x,所以我正在看输出。 我的部分脚本如下 ssh -tt $host.digital.domain.com << EOF sudo su – foo /apps/scripts/bar.sh exit EOF 脚本运行正常 [user@server ~]$ [foo@host ~]$ + rm -f '/tmp/files*' 然而窗口然后给我在远程计算机上的提示,而不是退出。 [foo@host ~]$ 我用-tt开关,因为我得到的tty错误,我也试图杀死pid,但这也不工作。 进行脚本的唯一方法是让我'按c'退出远程会话。 我已经尝试在一行上运行ssh,但是这没有奏效,可能是由于sudo,我不确定。 任何build议将是伟大的。 谢谢

使用Python通过SSH连接到MySQL

我需要一些帮助,使用python脚本在桌面PC上添加桌面到现有的MySQL数据库(db名称DB2639162)。 我写了下面的脚本(create_db.py): import MySQLdb from sshtunnel import SSHTunnelForwarder ssh_pwd='' ssh_usr='' mysql_pwd='' mysql_usr='' with SSHTunnelForwarder(('ssh.strato.de', 22), ssh_password=ssh_pwd, ssh_username=ssh_usr, remote_bind_address=('rdbms', 3306)) as server: print 'Server connected via SSH!' db1 = MySQLdb.connect(host='127.0.0.1', port=server.local_bind_port, user=mysql_usr, passwd=mysql_pwd, db='DB2639162') cursor = db1.cursor() sql = 'CREATE TABLE mydata' cursor.execute(sql) db1.close() 但不幸的是脚本不起作用,我得到了下面的输出。 很显然,SSH连接可以成功build立,但是对数据库的访问失败。 Server connected via SSH! 2016-09-18 11:02:19,291| ERROR | Secsh channel […]

通过PuTTy运行Nvim-R:设置r_term_cdm

我想通过putty在远程机器上运行Nvim-R ,当我尝试打开一个*.R文件时,远程机器返回一个错误信息: 请在vimrc中设置variablesg:R_term_cmd 。 阅读插件文档… 根据文档, R_term_cmd应按照以下方式使用: 如果|R_in_buffer| = 0 |R_in_buffer| = 0并且X Window系统正在运行并且安装了tmux ,那么R将在外部terminal仿真器中运行。 该插件使用它在以下列表中find的第一个terminal仿真程序: 1. gnome-terminal, 2. konsole, 3. xfce4-terminal, 4. Eterm, 5. (u)rxvt, 6. aterm, 7. roxterm, 8. terminator, 9. lxterminal 10. xterm。 如果Vim没有select你喜欢的terminal仿真器,你可以通过设置variablesR_term在你的vimrc定义它,如下所示: let R_term = "xterm" 如果您的terminal仿真器没有在上面列出,或者您对terminal仿真器被插件调用的方式不满意,您可以在vimrc定义variablesR_term_cmd ,如下例所示: let R_term_cmd = "xterm -title R -e" let R_term_cmd = "xfce4-terminal –icon=/path/to/icons/R.png […]

Bash – 知道SSH隧道是否被正确创build

这是情况 我有我的电脑,命名为MY_COMPUTER一台名为MY_COMPUTER的机器上,我有一个用户remoteuser ,在/etc/passwd shell /bin/false 这个用户只有一个function,做一个SSH隧道后能够做一个反向的SSH。 我目前使用的命令是 ssh \ -nNT \ -R 42242:127.0.0.1:22 \ remoteuser@REMOTE_VM 我希望这个命令在脚本中执行,并有一个方法来获得callback或方式(比如把这个ssh命令放在后台,定期检查一个套接字文件或类似的东西)来检查该连接实际上是打开的,而不是在networking缓慢的情况下简单地等待连接。 openssh-client是否有这样的方法,或者你必须使用ssh客户端的自定义实现,以便你可以把你的callback放在任何地方? 我宁愿尽可能多的(甚至肮脏的)解决scheme与纯openssh客户端和bash。

无法通过期望SSH的脚本bash命令

我试图将一组命令推送到多个远程主机。 我可以单独使用以下内容: ssh user@remoteHost "bash -s" <./commands.sh 我可以把它放到一个循环中,但是我被困在密码inputn次。 禁用SSHconfiguration文件中的密码提示不是我的select。 我试图在一个循环内使用期望,但我无法得到它的工作。 #!/bin/bash HOSTS="host1 host2" read -sp "Password: " PASSWORD for HOST in $HOSTS; do expect -c " spawn /usr/bin/ssh user@$HOST "bash -s" <./commands.sh expect_before { "*yes/no*" {send "yes"\r;exp_continue}} expect { "*Password*" {send $PASSWORD\r;interact}} exit" done 我得到以下错误: spawn /usr/bin/ssh root@host1 bash expect: invalid option — 's' usage: […]