Хостинг git-сервера, доступного по SSH, в Windows, не знаю, где я ошибаюсьJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Хостинг git-сервера, доступного по SSH, в Windows, не знаю, где я ошибаюсь

Сообщение Anonymous »

Это задача Hackattic, но суть задачи состоит в том, чтобы разместить git-сервер, доступный по SSH, создать пустой репозиторий и прочитать файл сразу после отправки.
Я запускаю сервер OpenSSH в Windows. и перенаправил порт 22.
Мой код делает что-то вроде этого:
  • Я получаю JSON от вызов, я создаю нового пользователя и каталог с тем же именем, что и имя пользователя.
  • В новом каталоге ключ публикации вставляется в .ssh/authorized_keys.
    < /li>
    Затем я инициализирую чистый репозиторий git с тем же путем, что и repo_path. Полный путь будет выглядеть примерно так: «C:/Users/username/repopath1/repopath2.git».
Теперь я отправляю POST-запрос в Hackattic, сообщая им, что мой репозиторий готов. Однако они всегда возвращаются с чем-то вроде:
{
error: "couldn't push to hax@(my ip):soft/scene.git - sorry, but we have no further details, check your server logs :(",
debug: { attempted_repo_url: 'hax@(my ip):soft/scene.git' }
}

Дело в том, что когда я пытаюсь подключиться по ssh локально, проблем с ключом паба или чего-то в этом роде не возникает. Однако есть одна странная вещь: я могу подключиться к локальному хосту по ssh, но если я попытаюсь подключиться по ssh к своему общедоступному IP-адресу, он не подключится, хотя я подтвердил, что порт 22 доступен для обнаружения на canyouseeme.org, и проверка связи с моим общедоступным IP-адресом тоже работает.
Я думаю, что это может быть проблема, связанная с разрешениями или неправильной настройкой между git и ssh, но я застрял на этом уже два дня и мне отчаянно нужна помощь. :(
Длинная строка кода для подробностей:
export const solve = async (problem: TProblem): Promise => {
try {
const { push_token, username, repo_path } = problem;
const url = `${BASEURL}/_/git/${push_token}`;

const repo_host = PUBLIC_IP;
const repoDir = await prepareDir(problem);
await prepareGit({ repoDir, repo_host, username, repo_path });
await setPermissions({ repoDir, username });
const response = await axios.post(url, {
repo_host,
});
console.log(response.data);
const secret = (await fs.readFile(path.join(repoDir, "solution.txt"))).toString();
return {
secret,
};
} catch (e) {
console.error(e);
throw e;
}
};

const setPermissions = async ({ repoDir, username }: PermissionParams) => {
try {
const ownership = await exec(`icacls "${repoDir}" /setowner "${username}"`);
await exec(`icacls "${repoDir}" /reset`);
await exec(`icacls "${repoDir}" /grant "${username}:(F)"`);
await exec(`icacls "${repoDir}" /inheritance:r`);

return ownership.stdout;
} catch (e) {
console.error(e);
throw e;
}
};

const prepareGit = async ({ repoDir, repo_host, username, repo_path }: GitParams) => {
try {
const remote = `${username}@${repo_host}:${repo_path}`;
const options: Partial = {
baseDir: repoDir,
binary: "git",
maxConcurrentProcesses: 6,
trimmed: true,
};
const git: SimpleGit = simpleGit(options);
const init = await git.init(true);
return init;
} catch (e) {
console.error(e);
throw e;
}
};

const prepareDir = async (problem: TProblem) => {
try {
const { repo_path, ssh_key, username } = problem;
const userDir = path.join(ROOT_DIR, username);
const sshDir = path.join(userDir, ".ssh");
const repoDir = path.join(userDir, repo_path);
const authKeyPath = path.join(sshDir, "authorized_keys");
await fs.mkdir(repoDir, { recursive: true });
await fs.writeFile(authKeyPath, ssh_key);

return repoDir;
} catch (e) {
console.error(e);
throw e;
}
};


Подробнее здесь: https://stackoverflow.com/questions/793 ... oing-wrong
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Git clone git@github.com:kortina/dotfiles.git
    Anonymous » » в форуме Linux
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Я пытаюсь найти собственные значения, используя якобианскую диагонализацию. Где я ошибаюсь?
    Гость » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Гость
  • Python: cs50p outdated.py Может кто-нибудь сказать мне, где я ошибаюсь? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Python: cs50p outdated.py Может кто-нибудь сказать мне, где я ошибаюсь? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Может ли кто -нибудь помочь мне, где я совершенно не ошибаюсь в этом коде Avalonia?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»