如何通过 SSH 连接到 colima 实例

问题描述 投票:0回答:2

寻找 SSH 进入

colima
所需的步骤,这太新了,而且文档有点稀缺。我需要复制卷,运行
scp
似乎是理想的选择。

docker colima
2个回答
19
投票

最快答案

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

如果您需要以

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/config

如果您要经常

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
,但做最适合你的事情。


0
投票

这是我解决问题的方法:

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>

© www.soinside.com 2019 - 2024. All rights reserved.