寻找 SSH 进入
colima
所需的步骤,这太新了,而且文档有点稀缺。我需要复制卷,运行 scp
似乎是理想的选择。
colima ssh
ssh
(tmpconfig=$(mktemp); limactl show-ssh --format config colima > $tmpconfig; ssh -F $tmpconfig lima-colima)
当我这样做时,这是
scp
:
(tmpconfig=$(mktemp); limactl show-ssh --format config colima > $tmpconfig; scp -F $tmpconfig lima-colima:/path/to/somewhere/ .)
我很想用文件描述符来编写它,不幸的是,当您在
-F
参数中传递文件描述符时,ssh 不喜欢它,例如:ssh -F <(limactl show-ssh --format config colima) lima-colima
如果您需要以
root
身份进行身份验证,例如 ssh -F $tmpconfig root@lima-colima
,您会发现它不起作用,您的用户将始终被使用,以下是更改该用户的步骤。
(
tmpconfig=$(mktemp);
# Need to remove the 'ControlPath' and 'User', and add 'ForwardAgent'
(limactl show-ssh --format config colima | grep -v "^ ControlPath\| ^User"; echo " ForwardAgent=yes") > $tmpconfig;
# Setup root account
ssh -F $tmpconfig $USER@lima-colima "sudo mkdir -p /root/.ssh/; sudo cp ~/.ssh/authorized_keys /root/.ssh/authorized_keys"
)
上面的命令稍微修改为:
(tmpconfig=$(mktemp); (limactl show-ssh --format config colima | grep -v "^ ControlPath\| ^User"; echo " ForwardAgent=yes") > $tmpconfig; ssh -F $tmpconfig root@lima-colima)
如果您要经常
ssh
进入colima
,您总是可以跳过所有大惊小怪,只需将其添加到您的~/.ssh/config
中并称之为“正常”。
# run this ONLY ONCE!!!
limactl show-ssh --format config colima >> ~/.ssh/config
然后只需调用
ssh
/scp
“正常”即可:
ssh lima-colima
scp lima-colima:/path/blah/foo .
就我个人而言,我不喜欢弄乱我的
~/.ssh/config
,但做最适合你的事情。
这是我解决问题的方法:
1。设置别名以方便
首先,将这些别名分别添加到您的
.bashrc
/.zshrc
文件中,以简化与 Colima 交互的命令:
alias colima_ssh='~/scripts/colima_ssh.sh'
alias colima_scp_from_host_to_vm='~/scripts/colima_scp_from_host_to_vm.sh'
alias colima_scp_from_vm_to_host='~/scripts/colima_scp_from_vm_to_host.sh'
2。脚本设置
从此文件夹下载上面代码片段中列出的脚本:https://github.com/ciechanowiec/linux_mantra/tree/master/resources/scripts。这些脚本有助于 SSH 连接过程以及主机和 Colima 实例之间的安全文件传输。重要的是,这些脚本以 Colima root 身份执行命令,确保您拥有各种操作所需的权限。以下是
colima_ssh.sh
的基本示例:
#!/bin/bash
tmpconfig=$(mktemp)
(cat "$HOME/.colima/ssh_config" | grep --invert-match "^ ControlPath\| ^User"; echo " ForwardAgent=yes") > "$tmpconfig"
ssh -F "$tmpconfig" "$USER@colima" "sudo mkdir -p /root/.ssh/; sudo cp ~/.ssh/authorized_keys /root/.ssh/authorized_keys"
ssh -F "$tmpconfig" root@colima
确保通过运行
chmod +x ~/scripts/*.sh.
使这些脚本可执行
3.使用方法
使用这些脚本,您可以轻松管理 SSH 会话和 SCP 传输。
通过 SSH 进入 Colima:
colima_ssh
将文件从虚拟机传输到主机:
colima_scp_from_vm_to_host <path-on-colima> <path-on-host>
将文件从主机传输到虚拟机:
colima_scp_from_host_to_vm <path-on-host> <path-on-colima>