我正在尝试将kubernetes 存储库添加到我的Amazon Linux 2实例,并且在自动添加 GPG 密钥方面遇到了困难。
这是我的/etc/yum.repos.d/kubernetes.repo
...
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Run Code Online (Sandbox Code Playgroud)
然后我尝试导入 GPG 密钥:
~ # wget https://packages.cloud.google.com/yum/doc/yum-key.gpg \
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
~ # rpm --import *.gpg
Run Code Online (Sandbox Code Playgroud)
但是,当我运行任何yum
命令时,它仍然不知道密钥:
# yum upgrade -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
kubernetes/signature | 454 B 00:00:00
Retrieving key from https://packages.cloud.google.com/yum/doc/yum-key.gpg
Importing GPG key 0xA7317B0F:
Userid : "Google Cloud Packages Automatic Signing Key <gc-team@google.com>"
Fingerprint: d0bc 747f d8ca f711 7500 …
Run Code Online (Sandbox Code Playgroud) 我的 Ubuntu 18.04在启动时不断将我所有的 SSH 密钥添加到ssh 代理中,我无法删除它们。代理中有如此多的密钥会破坏对仅允许 3 或 5 次尝试的服务器的身份验证。
~ $ ssh-add -l
2048 SHA256:7mW8C9RNZ75U...ArHq+9kSZLmny0Y google_compute_engine (RSA)
2048 SHA256:OUD4Vy0LKWp2...AwNKTbdHDkjVkcU id_rsa.aws (RSA)
2048 SHA256:/Qbw+NcgXBTk...pi7bYs2eYm0k7B8 id_rsa.aws-eu (RSA)
2048 SHA256:cG5xEwfejo2O...8LqmP4gk2wAtzrk id_rsa (RSA)
2048 SHA256:5TgVaBUrlSvV...PHM46avPZIauVRY sftp-test2 (RSA)
Run Code Online (Sandbox Code Playgroud)
当我尝试删除它们时,它说 OK 但它们仍然存在:
~ $ ssh-add -D
All identities removed.
~ $ ssh-add -l
2048 SHA256:7mW8C9RNZ75U...ArHq+9kSZLmny0Y google_compute_engine (RSA)
2048 SHA256:OUD4Vy0LKWp2...AwNKTbdHDkjVkcU id_rsa.aws (RSA)
2048 SHA256:/Qbw+NcgXBTk...pi7bYs2eYm0k7B8 id_rsa.aws-eu (RSA)
2048 SHA256:cG5xEwfejo2O...8LqmP4gk2wAtzrk id_rsa (RSA)
2048 SHA256:5TgVaBUrlSvV...PHM46avPZIauVRY sftp-test2 (RSA)
Run Code Online (Sandbox Code Playgroud)
由于在代理中加载了如此多的身份,我什至无法在命令行上明确指定,它仍然失败:
~ $ ssh 192.168.56.5 -i ~/.ssh/test
Received disconnect from …
Run Code Online (Sandbox Code Playgroud) 我有一个脚本,它采用可变数量的参数。我还有一个包装脚本,我在其中使用相同的参数并添加更多参数。问题是,当我有带有空格的参数时,它们在传递给“内部”脚本时会被单词分割。
例如外部脚本:
# tst1.sh
echo "-- tst1.sh --"
echo "1: $1"
echo "2: $2"
./tst2.sh $* --some --more --params
Run Code Online (Sandbox Code Playgroud)
和内部脚本:
#!/bin/bash
echo "-- tst2.sh --"
echo "1: $1"
echo "2: $2"
Run Code Online (Sandbox Code Playgroud)
现在,当我调用包装器脚本时,它会将日期作为单个参数正确获取,但是内部只获取第一个单词:
$ ./tst1.sh --date "$(date)"
-- tst1.sh --
1: --date
2: Fri Jan 25 21:51:57 GMT 2019
-- tst2.sh --
1: --date
2: Fri <== this is wrong
Run Code Online (Sandbox Code Playgroud)
我希望第二个脚本的输出与第一个相同。和所有的可变数量的参数,这就是为什么我用$*
,而不是单独的$1
,$2
等我能引用。
我尝试引用,"$*"
但随后将--date
日期字符串和实际日期字符串作为单个参数连接起来。
知道怎么做吗?
amazon-ec2 ×1
bash ×1
gpg ×1
kubernetes ×1
rpm ×1
shell-script ×1
ssh ×1
ssh-agent ×1
ubuntu ×1
yum ×1