0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ホームディレクトリも管理者権限もないからGit Pullできない😢

Last updated at Posted at 2025-04-05

みなさんこんにちは.初記事ですので温かい目で見ていただけるとありがたいです.基本ChatGPT先生に教えてもらった内容を状況を合わせてまとめているだけです.めったにない状況だと思いますが同じ状況で困っている方に届けばと思い記事を書きました.

TL;DR

  • SSHが参照するファイルはシステムのユーザー情報(たとえば/etc/passwdなどに書かれた情報)を元にする
  • Gitが呼び出すSSHコマンドは環境変数のGIT_SSH_COMMANDgit config core.sshCommand '...'のようなコマンドで変更可能

状況

みなさんは次のような状況に陥ったことはないですか?

  • サーバーなどで管理者権限がない
  • なんやかんやでシステムが指定するホームディレクトリがない
  • SSHしたいけど,~/.sshに書き込み権限がないから怒られる

はい,私が今さっきまで陥っていた状況です.このような状況下ではどうすれば最低限SSHが実行できるのかについて説明していきます.

以下,なぜそのような状況になったのかですが、ぐちっぽくなってしまったので読み飛ばして大丈夫です.
現在研究室のLinuxサーバーでは先生がホームディレクトリにマウントされている分散ファイルシステムの移行作業を行ってくださっています.そのおかげで現在一時的にホームディレクトリにアクセスできません.研究室のみんなが使用するので管理者権限も与えられておらず,HOMEディレクトリを変更することもできません.
各サーバー上に自由にアクセス可能なディレクトリが用意されているのでそちらで作業は継続可能なのですが,手元のパソコンで書いていたコードをGitHub経由でアップデートしようとしたときに問題が起こりました.
git pullしようとするとSSHはどうしても標準の/home/user/.sshを参照しようとしてしまいコマンドが失敗してしまったのです.$HOMEを変えても頑なに/home/user/.ssh以下のファイルを編集,参照しようとします.

原因

ChatGPT先生によるとどうやら,SSHコマンドが参照するファイルの位置はシステムが指定するホームディレクトリを元に決められるらしいです.例えば/etc/passwdとかでして,UNIXのプログラム上ではgetpwuid関数の結果に基づき決定されるそうです.そのため,$HOMEを変えてもSSHが参照するフォルダは何も変更されません.

準備

ここではGitHubへアクセスするための鍵はすでに用意しているものとします.

解決策

とりあえずgit pullだけしたいのであればSSHの3つのファイルの参照先だけ変えれば大丈夫です.

  • ~/.ssh/known_hosts
  • ~/.ssh/config
  • 秘密鍵

自分は新しい擬似的なホームディレクトリ(ここでは/new/homeとしておきます)を作ってその下に.sshを作ってそれぞれのファイルを配置しました.

Gitが呼び出すSSHコマンドは次の2通りで変更可能のようです.

  • 環境変数のGIT_SSH_COMMAND
  • git config core.sshCommand '...'のというコマンド

そのため,1つ目の方法を使うなら次のようになります.

export GIT_SSH_COMMAND='ssh \
  -o UserKnownHostsFile=/new/home/.ssh/known_hosts \
  -F /new/home/.ssh/config \
  -i /new/home/.ssh/github'

ただし,githubはGitHubに登録した鍵の秘密鍵のファイルです.

これでホームディレクトリも管理者権限もなくてもgit pullできるようになりました!
引き続きバリバリ働いていきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?