我买了一台新笔记本电脑,并将我的主文件夹从旧电脑复制到新电脑。我确保在此过程中复制了我的 .ssh 文件夹,因此我可以看到里面的密钥/home/<my user>/.ssh
。但是我无法使用这些密钥访问任何东西。例如,当我尝试使用mvn package
某个应用程序时,远程 Nexus 存储库不授予我访问权限。
有人能告诉我该如何正确地复制这些密钥吗?
答案1
首先确保您复制的密钥没有损坏。您可以在两个系统中检查和比较md5sum
。sha256sum
源系统和目标系统以及您复制的每个密钥都应该相同。如果不是这样,请重新复制。
md5sum <filename>
sha256sum <filename>
如果校验和相同,则需要确保具有适当的权限和所有权。
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/*
sudo chown user: -R ~/.ssh/
通过保留权限和所有权来复制密钥的最佳方式是 rsync。您可以在新系统中运行以下命令。这里我假设您使用的是同一个网络。
rsync user@{ip address or hostname of old system}/home/user/.ssh/* /home/user/.ssh/
如果新系统中的用户不同,则需要按照上述步骤修复所有权。
答案2
要将密钥传输到新计算机,您只需复制主目录中的子目录即可。该目录及其文件的权限很重要,因此需要使用.ssh
例如或其等效项来复制文件及其权限。cp -a
请注意,root 用户的 .ssh 目录位于/root/.ssh
,因此任何时候需要以 root 身份进行 ssh 时,它可能正在使用 中的文件/root/.ssh
,而不是您的主目录中的文件。