我有一个 OpenSSL 证书。我也需要私钥。有人告诉我它位于服务器上的某个地方,确实如此,我发现了多个 SSL 密钥文件。
在我通过蛮力尝试所有这些之前:有没有办法在终端上找出是否使用私钥来创建证书?
我经常做一些事情,我循环遍历服务器列表以采取一些行动。例如:
for s in `cat servers.txt` ; do
echo; echo $s
ssh $s 'do something'
done
Run Code Online (Sandbox Code Playgroud)
我想知道(从 shell 的角度)是否有比 cat servers.txt
是的,我知道 mcollective、capistrano 等工具 - 我经常这样做是为了解决 mcollective 问题:-)
从服务器 A 到服务器 B(以及大约 500 台其他服务器)设置了无声 ssh
我在服务器 A(shell 和 perl)上编写了一个脚本,我想通过服务器 B(和其他 500 台服务器)上的 ssh 执行该脚本。这可能吗 ?我能够使用静默 ssh 运行命令,但不确定如何运行整个脚本。
我想创建一个 tar 文件,排除某些具有许多子文件夹和文件的文件夹,但只保留被排除的主文件夹。解释:
-project
|-dir1
|-dir2
|-cache
|-logs
|-dir3
--dir4
Run Code Online (Sandbox Code Playgroud)
我希望我的 tar 排除缓存和日志内容(文件和文件夹),但在 tar 文件中保留这个空文件夹。
如果我使用 --exclude=project/cache 它会从文件中排除文件夹。我怎样才能做到这一点 ?
这个让我发疯。任何帮助表示赞赏!
$MYSQLDUMP --login-path=$HOST $DATABASE > "$BACKUP_DIR/${HOST}__${DATABASE}__${NOW}.sql";
Run Code Online (Sandbox Code Playgroud)
$MYSQLDUMP(在脚本中)有一个有效的完整路径$NOW 在剧本的早期设定,而不是在这里......所以时间不会改变我们或任何事情dos2unix确保没有奇怪的字符。我在 Mac 上,但是嘿...为什么不呢>like \>,反而产生mysqldump: Couldn't find table: ">"错误这个让我发疯。不确定我在这里缺少什么?我们只是在指导输出,我觉得我忽略了一些非常明显的事情。
更新
在此处添加了更多测试以进行调试和协助。
vrb "\$BACKUP_DIR: $BACKUP_DIR"
vrb "whoami $(whoami)"
vrb "ls -ld \"$BACKUP_DIR/\" $(ls -ld \"$BACKUP_DIR/\")"
vrb "absolute path of user's home dir: $(cd ~/; pwd)"
vrb "absolute path of \$BACKUP_DIR: $(cd $BACKUP_DIR/; pwd)"
Run Code Online (Sandbox Code Playgroud)
...产生...
20160713T210808Z: $BACKUP_DIR: ~/www/__MYSQL/backup
20160713T210808Z: whoami william
ls: "~/www/__MYSQL/backup/": No such file or directory …Run Code Online (Sandbox Code Playgroud) 我正在编写一个生成无人值守 GPG 密钥的 bash 脚本,我查看了 GPG 的无人值守用法,并惊讶地发现“目前只能处理一个子密钥”。
我无法找到是否有办法修改 GPG 密钥以使用可用的无人参与生成功能添加第二个子项,或者我是否必须自己手动添加子项。
我尝试使用here documents,here strings并创建一个每行一个输入的文件,并使用printf类似于以下内容:
printf 'addkey' | gpg2 --edit-key 'test@test.com'
Run Code Online (Sandbox Code Playgroud)
这些解决方案都不起作用:
balthasar@magi:~$ printf 'addkey' | gpg2 --edit-key 'test3@test.com'
printf 'addkey' | gpg2 --edit-key 'test3@test.com'
gpg (GnuPG) 2.0.26; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
pub 4096R/AB96CED4 created: …Run Code Online (Sandbox Code Playgroud) 在我的管理工作期间,我需要登录到几个远程 ssh 服务器。我使用三台不同的计算机客户端,它们都是 Debian GNU/Linux 系统。我保留了一个工作区目录,用于放置我完成工作所需的所有内容,该目录包含一个bashrc文件和一个ssh_config文件等。
rsync当我移动并开始使用不同的客户端时,我使用脚本手动同步该目录内容,该脚本从一台客户端计算机使用到另一台客户端计算机。
这三个客户端中的每一个上的本地用户都需要最少的配置,因此如果我需要创建一个新的本地用户或重新安装一个客户端,我只需要rsync到工作区并workspace/bashrc在真实用户的$HOME/.bashrc. 我的自定义workspace/bashrc创建了几个别名,无论我使用什么客户端,我都会得到我通常的环境。
我的自定义workspace/bashrc创建别名以这种方式连接到远程服务器:
alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com'
Run Code Online (Sandbox Code Playgroud)
并且我只需s1在任何客户端的终端中键入即可登录 server1 ,因为我的自定义ssh_config设置了所需的公钥身份验证选项、正确的端口 server1 正在侦听和正确的用户。
现在这就像一个魅力,只要ssh命令是我需要的。不幸的是,一旦我需要另一个使用 的命令ssh,事情就会变得更加混乱。
例如,如果我需要对rsync其中一台服务器进行任何操作,我将不得不编写整个 ssh 命令:
rsync -Pavz --delete -e "ssh -F $HOME/workspace/etc/ssh_config" ...
Run Code Online (Sandbox Code Playgroud)
类似的事情发生在其他命令上,例如scp,ssh-copy-id和其他命令。
我希望能够写
rsync -Pavz --delete -e "ssh" ...
Run Code Online (Sandbox Code Playgroud)
相反,并让 ssh 从环境变量中获取它的配置文件名,以便我可以在我的bashrc每次ssh调用中设置该环境变量,并且每次调用都会自动工作。
是否有这样的环境变量或问题有不同的解决方案?
我尝试通过执行创建一个 root2 用户,该用户应该具有与 root 相同的权限
useradd -g root root2
passwd root2
usermod -G root root2
usermod -aG wheel root2
Run Code Online (Sandbox Code Playgroud)
但是 root2 仍然不能以 cat /etc/shadow 为例。
我怎样才能创建这样的用户?
我有一个文件中的文件列表,cache_temp.
在文件中cache_temp:
/home/maildir/mydomain.com/een/new/1491397868.M395935P76076.nm1.mydomain.com,S=1740,W=1777
/home/maildir/mydomain.com/een/new/1485873821.M199286P14170.nm1.mydomain.com,S=440734,W=446889
/home/maildir/mydomain.com/td.pr/cur/1491397869.M704928P76257.nm1.mydomain.com,S=1742,W=1779:2,Sb
/home/maildir/mydomain.com/td.pr/cur/1501571359.M552218P73116.nm1.mydomain.com,S=1687,W=1719:2,Sa
/home/maildir/mydomain.com/td.pr/cur/1498562257.M153946P22434.nm1.mydomain.com,S=1684,W=1717:2,Sb
Run Code Online (Sandbox Code Playgroud)
我有一个简单的脚本,用于从以下位置获取文件大小cache_temp:
#!/bin/bash
for i in `grep -v ^# ~/cache_temp | grep -v "dovecot.index.cache"`; do
if [ -f "$i" ]; then
size=$(du -sh "$i" | awk '{print $1}')
echo $size
fi
done
Run Code Online (Sandbox Code Playgroud)
我有一个文件大小列表:
4,0K
4,0K
4,0K
432K
4,0K
Run Code Online (Sandbox Code Playgroud)
我怎样才能计算它们的总和?
这是我的场景:
~/.ssh/id_rsa.pub(来自 A)authorized_keys~/.ssh/id_rsa),因为它存在安全风险(密钥是个人的)。如何使用主机 A 中的密钥登录主机 C?这可能吗?我怕不是。
(与此问题类似但不同)
我需要的是一种在不接触 B 中的文件系统的情况下,即时(stdin 或类似)向 B 中的 ssh 跃点提供私钥的方法。这可能吗?