Articles of ssh

为什么一个UNIX用户有一个密码?

我正在configuration我的树莓派的ssh服务器,以便它只支持基于密钥的身份validation。 我已经在服务器上创build了一个用户,并使用我的公钥和正确的权限设置了〜/ .ssh目录。 用户当前被标记为“locking”,因为它没有密码。 这会导致openssh拒绝连接。 # /var/log/auth.log Aug 9 09:05:26 raspberrypi sshd[6875]: User foo not allowed because account is locked Aug 9 09:05:26 raspberrypi sshd[6875]: input_userauth_request: invalid user foo [preauth] Aug 9 09:05:26 raspberrypi sshd[6875]: Connection closed by 192.168.0.4 [preauth] 理想情况下,我不需要密码。 我已经通过PKI进行身份validation。 也许我可以设置密码为“密码”,或随机string – 但似乎凌乱。 任何build议? 编辑: 只是为了澄清,我的帐户被locking,因为它没有密码,即 $ passwd -u foo passwd: unlocking the […]

不能从Linux EC2实例到本地机器的SCP

我试图把我的Amazon EC2实例中的一个文件存入我的Linux机器。 我已经做了相当多的阅读,似乎没有任何工作。 我可以从我的Linux机器SSH到我的实例(这是我如何连接到它),甚至可以通过做scp -i my-key-pair.pem SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~进入它scp -i my-key-pair.pem SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~ 。 根据亚马逊在这个环节的说明,为了让SCP从实例到我的机器,我只需要“简单地颠倒主机参数的顺序”。 换句话说,这个: scp -i my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt 我用googlesearch了一下,甚至还读了一些类似的问题,包括这个 ,但是我没有运气。 我不确定是什么问题。 有一天,我设法跨越实例(即从一个EC2实例到另一个实例)没有问题 – 至less据说需要多一点修补。 另一个令我困扰的问题是,从实例到本地机器的SCP命令包含私钥(上面代码块中的my-key-pair.pem),而我寻找实例上的.pem文件并没有find。 我错过了什么吗? 提前致谢。 顺便说一下,我看到通用的“权限被拒绝(公钥)”错误。

rsync ssh无法连接

尝试使用以下命令通过rsync连接下载文件时: rsync -Pav http://some.domainname.com/file.tar.gz 下面的错误给了我 ssh: Could not resolve hostname http: Connection timed out rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9] 如果我尝试使用ftp命令下载相同的文件,它可以正常工作。 如果我尝试从另一个networking上的PC使用rsync命令,而这也工作正常,所以它似乎是环境的东西。 客户端客户端PC位于代理服务器的后面,但所有的代理地址细节已经被添加到系统中,并且我能够浏览,ftp和ssh到testing服务器上而没有任何问题。 有什么可能阻止rsync运行?

如何使用SSH安装bitnami堆栈(.run文件)

我正在尝试安装.run文件,我从https://bitnami.com/redirect/to/39461/bitnami-wordpress-3.9.2-0-linux-installer.run 但是,当我尝试运行它没有任何反应(我也使用了文本模式) 如何使用SSH在Linux中安装.run文件?

在远程ssh命令中传递引用的variables

我想grep通过几个文件的string。 在这个例子中我想grep为“testing1234” #!/bin/bash variable="test 1234" ssh root@server "grep "$variable" /path/*" 此脚本不起作用,因为testing1234被传递到服务器而不是“testing1234” 我怎样才能解决这个问题?

自动执行SSH并在shell脚本中运行SCP和其他命令

我对脚本非常陌生,对可用选项和使用方法的想法相当less。 我的要求是,我需要从jum主机运行一个shell脚本。 该脚本应该从本地文件复制到远程Linux主机,解压并运行一个执行命令。 这三个操作应该发生在远程机器上,但脚本将从跳转主机运行。 我将传递目标机器IP和密码以及文件作为参数。 我试图做到这一点。 但是不能成功。 请一些身体帮我,我怎么能做到这一点。

使用'expect'命令远程将密码传递给SSH运行脚本

我需要创build一个bash脚本,可以在一批机器上远程运行另一个脚本。 为此,我正在通过SSH传递一个脚本。 ssh -p$port root@$ip 'bash -s' < /path/to/script/test.sh 我以为它会使用我的RSA密钥,但我得到错误: "Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)" 我尝试使用sshpass无济于事。 所以我的下一个解决scheme是使用expect。 我从来没有用过期望,我很积极,我的语法是离开的。 ssh -p$port root@$ip 'bash -s' < /path/to/script/test.sh /usr/bin/expect <<EOD expect "password" send "$spass\n" send "\n" EOD 我有root权限访问所有机器,任何解决scheme只要代码仍然在bash中就可以。 只要记住,这将在一个从父脚本传递的全局variables($ spass,$ ip,$ port等)的循环中完成。

通过环境variables提供ssh密钥

我在我的应用程序中使用ssh命令运行shell脚本。 使用的私钥是通过密码encryption的,问题是 – 我不能交互式地通过它时询问。密钥不添加在ssh-agent 。 我不能执行ssh-add my_key因为密码被认为是交互式传递的。 这对于terminal通信是有好处的,但是在内部应用中不太好。 man page说: DISPLAY和SSH_ASKPASS 如果ssh-add需要密码,它将从terminal读取当前terminal的密码。 如果ssh-add没有与之关联的terminal,但是设置了DISPLAY和SSH_ASKPASS,它将执行由SSH_ASKPASS指定的程序并打开一个X11窗口来读取密码。 当从.xsession或相关脚本调用ssh-add时,这是特别有用的。 (请注意,在某些机器上,可能需要redirect来自/ dev / null的input以使其工作。) 当我执行SSH_ASKPASS=file_with_passphrase ssh-add my_key我仍然要求键入一个密码,看起来像env var在这种情况下被忽略。 我尝试执行ssh -o BatchMode=yes ,服务器只是拒绝了编码密钥,因为没有人能够解码它。 在ssh-agent使用它之前,我确实可以手动解码ssh密钥,但看起来我正在从SSH_ASKPASSvariables中获得所需的SSH_ASKPASS ,但是我不知道如何使其工作。 很高兴得到社区的帮助。

从bash脚本ssh-add和自动化密码input

我正在尝试从脚本执行ssh-add(目前不关心安全性)。 现在ssh提示input密码,这需要自动化,所以我读了几个这样的事情,并发现预期 。 现在我做了以下: eval `ssh-agent -s` 脚本tmp.sh定义为: #!/usr/bin/expect spawn ssh-add /root/.ssh/id_rsa expect "Enter passphrase for /root/.ssh/id_rsa:" send "my_pass" interact ./tmp.sh ssh-add -l 如果ssh-add可以工作,则会显示类似的内容 4096 SHA256:wlfP/nhVSWXLcljBOen5GSYZXJGgfi/XJWfZeBwqRsM id_rsa (RSA) 但是,而我得到The agent has no identities. 看起来像ssh代理松散的上下文。 我打开其他解决scheme来做到这一点。

无法scp到Azure的虚拟机

我试图从我的机器上复制一些文件到Azure虚拟机。 我事先说过,我可以ssh Azure的虚拟机,我在创build机器的时候给了我的公钥。 这两台机器都是Linux。 当我尝试: sudo scp /path/ca.crt ubuntu@ip.add.res.s:~/ 我收到输出: Permission denied (publickey). lost connection 我没有指向一个根目录(我的文件是在根目录,这就是为什么sudo); 我不是指向一个错误的用户; 如果我可以通过ssh连接为什么scp应该被拒绝?