我需要创建一个 cron 脚本,它将所有日志从一台机器 scp 到日志解析机器,但是当我 scp 时,我被要求插入密码。通常,当我使用 Putty 连接到服务器时,我使用pageantPutty 来允许代理转发,当我选择要连接的机器时,它会打开一个 Putty 窗口,让我直接进入 shell,无需插入密码。在我将 rsa 公钥插入每台机器上的 .ssh/authorized_keys 文件后,就会发生这种情况。
我想在两台服务器之间做同样的事情。
编辑:我不知道为什么它被否决了......我认为这是一个合理的问题。请告诉我我做错了什么:
[root@search-uk-1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ca:ab:4d:95:a4:ee:47:67:0c:e1:23:f3:73:46:67:7e root@search-uk-1.int.incredimail.com
The key's randomart image is:
+--[ RSA 2048]----+
| …Run Code Online (Sandbox Code Playgroud) 我知道一种方法,在服务器列表上运行,如下所示:
for server in $(cat server.list); do
ssh-copy-id user@host
done
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好的方法来做到这一点?不需要任何用户输入的自动功能。NIS 能做到吗?
我正在使用 Linux CentOS 6.4 。
我正在编写一个 shell 脚本,我需要提取机器的 IP 以便在脚本中使用它。如何找到机器的IP?
我正在寻找“最佳”方式,因为我知道有几种方法可以获取 IP 地址。
谢谢
我有一个新安装的 Puppet 服务器,只配置了一个模块和一个托管客户端。
这是一个 MOTD 模块,看起来像这样:
class motd {
file { "/etc/custom_motd.sh":
path => '/etc/custom_motd.sh',
ensure => present,
owner => "root",
group => "root",
mode => "775",
content => template('motd/custom_motd.sh.erb'),
#require => Class['nagios_client'],
}
# file_line { 'enable motd':
# ensure => present,
# line => '/etc/custom_motd.sh',
# path => '/etc/profile',
# require => File['/etc/custom_motd.sh']
# }
}
Run Code Online (Sandbox Code Playgroud)
当我puppet agent -t在客户端上运行时,我得到了正确的结果:
[root@pnd01 ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for pnd01.company.com
Info: …Run Code Online (Sandbox Code Playgroud) 我已经在我的公司中配置了许多服务器来与 NSCD 一起工作以进行主机的本地缓存,以便降低到本地 DNS 服务器的流量并在可能的情况下返回更快的 DNS 响应。
我已经这样配置了nscd,并且只将它用于缓存主机:
logfile /var/log/nscd.log
debug-level 9
server-user nscd
paranoia no
enable-cache hosts yes
#positive-time-to-live hosts 3600
positive-time-to-live hosts 86400
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes
#max-db-size hosts 67108864
max-db-size hosts 536870912
Run Code Online (Sandbox Code Playgroud)
您可以看到我已将 Positive-TTL 配置为 24 小时。
我的问题是,使用的是哪个 TTL?是在此处配置的还是在 DNS 中按域配置的?
我的猜测是更短的 TTL 发生了,但我可能是错的,你能解释一下这个问题吗?
我已在 AWS 中颁发了通配符证书以安装在公司网站上(存储在 CloudFront 分配中)。
公司使用客户支持服务,当您浏览 support.company.com 时,它会将您带到该服务站点。
直到今天,对支持站点的访问都是在 HTTP 协议上完成的,我们想将其更改为 HTTPS。
为此,我需要将新证书上传到该客户支持服务提供商站点,他们需要私钥、公钥和中间证书。
我已经运行以下命令来获取证书:
aws iam get-server-certificate --server-certificate-name wild_company.com_10072019
Run Code Online (Sandbox Code Playgroud)
但是输出显示了“CertificateChain”——所有证书都显示在一行中,另一个“CertificateBody”也显示在一行中。
CertificateBody 更容易通过“--- 开始证书 ---”和“---END 证书---”来区分,它们只出现一次,但在 CertificateChain 中有很多开始/结束标记,我不是确定如何将其转换为公钥/私钥和中间证书。
知道怎么做吗?
我的任务是创建一个 excel 表,其中包含我们的一个 AWS EC2 环境中的所有 Linux 服务器,因为主要目标是让所有服务器脱离 AWS 并将它们迁移到我们的虚拟环境。这些是感兴趣的行标题:服务器名称、角色、CPU、内存、磁盘、应用程序组件及其版本。
我提取服务器名称和服务器规范没有问题,但是查找服务器角色的最佳方法是什么?我有一些想法,但我很想听听你的想法……这是我的:
rpm -qa --queryformat "%{NAME}\n"以将所有包名称提取到一个列表中,这可以帮助我了解服务器的作用。chkconfig --list |grep on以查看启用了哪些守护程序。top以查看哪些进程正在运行。linux ×2
ssh-keys ×2
automation ×1
centos5 ×1
centos6 ×1
ip ×1
puppet ×1
puppet-agent ×1
puppetmaster ×1
scripting ×1
ssh ×1
ttl ×1