Articles of ssh

ppk文件的SSH密码

我试图使用.ppk文件连接到EC2服务器 ssh -i key.ppk -l root@dns-name 问题是,shell要求密码? 我不知道它是什么! 能够使用这个键使用腻子,但不能从Linux 我在这里错过了什么?

我怎样才能将PrintLastLog选项传递给一个ssh运行(不用改变ssh_config)

我想禁用PrintLastLog选项只有一个运行的ssh命令。 我尝试使用-o选项来传递它: ssh -q -o PrintLastLog=no localhost 但是我得到: command-line: line 0: Bad configuration option: printlastlog 我也看不到SSH_CONFIG(5) man文件中的PrintLastLog选项。 有没有特殊的选项,不能作为命令行标志传递? 这个问题的原因是,我需要从脚本ssh到几个服务器,我不希望MOTD /login消息堵塞脚本的日志输出。

获取密码到ssh-keygen

我有一个新的私钥,作为bash脚本的一部分,它将作为Docker容器。 将私钥复制到/root/.ssh/id_rsa我想用以下方法重新生成公共密钥: ssh-keygen -yf /root/.ssh/id_rsa > /root/.ssh/id_rsa.pub 不幸的是,这导致了以下错误: 加载失败 我认为这是因为私钥有一个没有提供给ssh-keygen命令的密码,但是我不知道这是怎么回事。 我读过设置SSH_AUTH_SOCK环境variables就足够了,但它不适合我…仍然要求密码。 然后我碰到了使用-x参数的keygen命令的一个小变化: ssh-keygen -yf /root/.ssh/id_rsa > /root/.ssh/id_rsa.pub -x 令我非常吃惊的是它产生了结果。 正确的结果? 不确定。 实际上,结果与非“-x”变体(当提供密码短语时)明显不同。 我看了一下man文件,并没有提到-x 。 我很困惑。 任何帮助,将不胜感激。 寻找: 更好地理解-x作用以及如何有效地使用它 一种将我的私钥的密码传递给ssh-keygen (也是如此, git也会使用它)

EC2之间的同步代码

ELB内部有多种EC2盒子,其中一种专门用于SVN。 我目前有一个脚本被调用作为后提交钩的一部分,这是为了在不同的EC2之间同步文件。 问题是新的文件/文件夹是同步的,但删除不是。 我想同步一切,删除(文件/文件夹),更新等 这是我目前使用的: #!/bin/bash rsync -avz ~/testing/* -e "ssh -i ./testing.pem" ec2-user@ipgoeshere:/home/ec2-user/testing 再次,我希望从源头将所有内容同步到EC2,包括添加,更改,删除等。 我错过了什么? 谢谢!

SVN发布提交问题(调用Bash)

所有, 我想调用一个bash脚本(做一些rsync魔术)到我的post-commit hook结束。 这是我的后提交钩子看起来像: #!/bin/bash REPOS="$1" REV="$2" SVNLOOK="/usr/bin/svnlook" AWK="/usr/bin/awk" temp_dir="/var/www/vhosts/domain.com/temp"$(date +"%s") # to avoid conflict, append unix timestamp webroot_dev="/var/www/vhosts/domain.com/dev.project.com" webroot_alpha="/var/www/vhosts/domain.com/alpha.project.com" webroot_beta="/var/www/vhosts/domain.com/beta.project.com" webroot_live="/var/www/vhosts/domain.com/project.com" repo_dev="file:///var/svn/Echo/branches/Dev" repo_alpha="file:///var/svn/Echo/trunk" repo_beta="file:///var/svn/Echo/branches/Beta" repo_live="file:///var/svn/Echo/branches/Live" is_dev=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "Dev"` is_alpha=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "trunk"` is_beta=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "Beta"` is_live=`$SVNLOOK dirs-changed […]

/etc/hosts.deny不会每次都生效

首先,我的sshd已经libwrap.so了,这里是检查结果: root@FS9000:~# ldd sshd | grep libwrap libwrap.so.0 => /usr/lib/libwrap.so.0 (0x000000555e3fa000) 当我像这样configuration/etc/hosts.deny时(没有/etc/hosts.allow): sshd: ALL 然后任何IP在访问服务器时都会被阻塞,这个效果明显。 当我像这样configuration/etc/hosts.deny时: sshd: 192.168.1.30 我试图从192.168.1.30访问服务器,login成功没有任何阻止! 看来它不能阻止指定的IP,这很奇怪。 问题是什么? PS:我试过在embedded式系统中,使用busybox(v1.22.1),sshd是从openssh-6.3p1。 所有的testing都是基于本地networking,这里是sshd连接的细节。 192.168.1.30是一个linux客户端,192.168.1.212是embedded式系统。 root @ FS9000:〜#cat /etc/hosts.deny ALL:192.168.1.30 root @ FS9000:〜#env | grep SSH SSH_CLIENT = 192.168.1.30 36425 22 SSH_TTY = / dev / pts / 0 SSH_CONNECTION = 192.168.1.30 36425 192.168.1.212 22 root […]

ssh-keyscan成功评论stderr

我正在运行一个shell脚本来将指纹添加到known_hosts。 代码是这样的: status=$(ssh-keyscan -T 5 $remotehost >> ~/.ssh/known_hosts 2>&1) if [[ $? != 0 ]]; then echo -n Error: "" echo "$status" exit 1 fi 结果是这样的: ssh-keyscan -T 5 example.com # example.com SSH-2.0-OpenSSH_5.3 example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAA…..o9sgjFlqfli7ZQ== 直到最近,我还没有问题,但是到了晚期, ssh-keyscan在成功的情况下向stderr添加了评论,并用垃圾填充了我的主机文件。 由于ssh-keygen -R example.com命令提前运行以确保没有重复,最终导致主机文件在同一主机使用两次后出错。 我一直无法find一种方法来禁用该stderr评论。

服务器端的CD上的SFTP客户端连接

有没有一种方法使用sftp来configuration服务器端在客户端连接时运行cd命令? 我有我的用户扔到chroot,该文件夹必须是root:root chowned,不能被任何其他用户写入,在chroot中有sftp用户所拥有的子文件夹。 我想要做的是在用户连接时,将用户从服务器端的服务器端切换到他们的文件夹,以避免每次连接时都不得不这样做。 这可能吗?

Chroot用户无法使用SSHlogin

我创build了一个没有shell访问权限的新用户: useradd -g www -d /www/user01 -p ****** -s /sbin/nologin user01 然后在我的sshd_config添加这些行: AllowUsers user01 user02 manager Subsystem sftp internal-sftp Match User user01 ChrootDirectory /www/user01 PasswordAuthentication yes ForceCommand internal-sftp 问题是我得到拒绝每次我用腻子login,是否有任何错误configuration? 更新: 看来,唯一的用户可以ssh是root用户,甚至添加新的用户到AllowUsers指令。

寻找一个中央控制台pipe理软件,利用我的RDP凭据访问

我们所有托pipe的Windows Server 03+机器都可以通过RDP启用并正常连接。 但是,我想要一个不那么重的中央pipe理(基于命令行)来大规模pipe理和维护系统,以便能够通过非侵入性方法(即不中断用户生产力)来更新。 具有集中控制台的传统系统pipe理软件将非常棒,但是,我们的100多台服务器和工作站中有一半都位于自己的本地networking上。 有些是域名,有些是在工作组。 我们在美国有客户。 最初的设置当然不是我的决定,但我现在的任务是寻找一种更简化的方法来发送更新,修补程序和修复程序到我们支持的不同版本的产品的不同types的客户端。 我倾向于基于SSH的东西。 我知道在不牺牲安全性的情况下可以使用RDP进行身份validation,我们的每个客户都需要为我们维护一个pipe理员帐户。 因此,插入我们的所有信息,哪些软件可以最好地利用我们的情况? 我曾经想过腻子 ,但只保留与个别标签的公开会议。 我们没有办法根据我们预先定义的组来分发修复程序。 除非我理解错误。 在这个问题上肯定能够得到一些帮助,这将为我们的IT团队节省很多时间,至less可以得到一些基本的东西。 最好的方式是,如果它能够使用我们为RDP上的每个人存储的凭证,那么我们有300-325个客户,我们需要解释他们基础设施的变化,这将需要为每个人计划停机时间。 试图避免这一个。