質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

解決済

5回答

1649閲覧

GitHubにおいて、他人からのプッシュを防ぐ方法

aae_11

総合スコア178

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

0クリップ

投稿2019/08/01 08:17

編集2019/08/01 08:18

Gitにて、Githubにファイルをpushする際、「$git remote add origin git@github.com/example/example.git」「$ git push origin master」のようにして、ファイルをpushすることができますが、pushする際にgithubのパスワードや登録メールアドレスは入力することはなかったのですが、この状態では他人が勝手にpushすることができてしまうと思います。
もしそうだとした場合、他人からのpushを防ぎたいのですが、方法はありますでしょうか...?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/08/04 03:19

行った手順に思い違いがある可能性が否定できません。 再現する手順を(記憶ではなく実際に行って)書き示してください。
Zuishin

2019/08/04 03:21

手順は GitHub に新しいリポジトリを作るところから行ってください。そして、プッシュできるかどうか試しますので、それを公開してください。
aae_11

2019/08/04 04:04

GitHubに新しいアカウントを作成し、新しいリポジトリを作成「$ git remote add origin https://github.com/新しく作ったGtiHubユーザ名/test.git」とし、「$ git push -u origin master」コマンドを打ち込みましたらエラーが発生しました。 エラー内容は以下の通りです。 「remote: Permission to 新しく作ったGitHubユーザ名/test.git denied to example. fatal: unable to access 'https://github.com/新しいGItHubユーザ名/test.git/': The requested URL returned error: 403」 エラーの内容に、接続設定のしていないと思っていたGitHubユーザ名の「example」が入っていました。 「example」が出てくるということは、もしかしたら、昔に接続設定などを覚えていないだけで、していたのかもしれないです。。
guest

回答5

0

ベストアンサー

このような方法を使うこともできます。

7.14 Git のさまざまなツール - 認証情報の保存

Mac を使っているなら、Git の “osxkeychain” モードが使えます。これを使うと、OS のキーチェーン(システムアカウントと紐づく)に認証情報がキャッシュされます。 このモードでも認証情報がディスクに保存され、有効期限切れもありません。

一度、ホームディレクトリの .git/config をテキストファイルで開き、他にも何かヒントが無いか探してみてください。

とりあえず、他者のリポジトリにプッシュできないことは確かめられたようなので、あとはどこでログインしているかだけの話になります。もしかしたら一緒にインストールした他のツールや、ブラウザがログイン処理をしているのかもしれないし、シングルサインオンが有効になっているのかもしれません。

投稿2019/08/04 04:46

編集2019/08/04 04:50
Zuishin

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/08/04 05:16

ご回答ありがとうございます。 >もしかしたら一緒にインストールした他のツールや、ブラウザがログイン処理をしているのかもしれないし そうですね。自分が使用しているOSはwindowsなのですが、一度色々と、認証情報についてなど調べてみようかと思います。
Zuishin

2019/08/12 14:24

これかもしれないというのを一つ見つけました。 スタートメニューで IME を ON にし、「資格情報」と打ち込んで資格情報マネージャーを起動します。 「Windows 資格情報」をクリックし、git:https://github.com があるかどうかを確かめてください。 もしそれがあるなら、削除することでログインされなくなるかもしれません。 これは「汎用資格情報の追加」で GitHub のユーザー名とパスワードをセットすることでいつでも復旧できます。
aae_11

2019/08/12 14:42 編集

ありがとうございます。 資格情報の欄を見てみましたら、「git:https://github.com」が存在していました。 しかし、現状は、パスワードの入力などをせずに、自動でログインできることに関しては便利ですし、現状は削除せず、このままにしておこうかと思います!
guest

0

GitHub→Settings→SSH and GPG keys
ここにSSH keysが登録されているはずです。
Deleteを押せば削除できます。

他人からのプッシュを心配されるのであれば、知り合いに協力してもらって知り合いのリポジトリにプッシュしてみればどうでしょう?
他人のレポジトリにプッシュできないはずです。

git configにcredential.helperというのがありますがパスワード管理してくれているようです。
もしcredential.helperがパスワードを覚えているならリセットさせる方法があるかもしれません。
検索すればいくつかでてきますが面倒なので試していません。

投稿2019/08/02 10:07

querykuma

総合スコア777

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/08/02 11:28

ご回答ありがとうございます。 他人からのプッシュが心配といいますが、何故GitBashの方で、GitHubのアカウントのパスワードなどの認証情報を入力していないのに、pushできるのかといった点が、どうしても疑問だったといった感じですね...
shinami

2019/08/03 06:14

Windowsならユーザーフォルダ内に.sshフォルダがあってその中にid_rsa.pubやid_rsaファイルとか無いですか?ある場合はどこかのタイミングでSSHキーを作成したのでしょうね。
aae_11

2019/08/03 10:09

検索をかけフォルダ内を調べてみましたが、「id_rsa.pub」や「id_rsa」といったファイルは見当たりませんでした...
shinami

2019/08/03 11:14

そうでしたか。確かに何か変ですね。 sshでなくhttpsでなら最初だけIDとパスワードを聞いてくるのですがsshであるかつそれもないんですよね? 確かにどっちで接続しているんだろう。 割り込み失礼しました。
aae_11

2019/08/04 03:11

そうですね...最初だけ、IDとパスワードを聞いて来るというのもなかったですね... いえいえ、ご助言下さりありがとうございました。
guest

0

$git remote add origin git@github.com/example/example.git
pushする際にgithubのパスワードや登録メールアドレスは入力することはなかったのですが、この状態では他人が勝手にpushすることができてしまうと思います。

質問の趣旨は「pushするときにアカウントを特定できるような情報を入力していないのに、どうやってアクセス制御をしているのか」というところですね。

ssh接続の場合、使ったssh鍵で誰がアクセスしてきてるのか特定されています。
次のようにすれば確認できます。

$ ssh git@github.com
PTY allocation request failed on channel 0
Hi set0gut1! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

メッセージに "Hi set0gut1!" とあることから、ssh鍵でアカウントが特定されていることが分かるかと思います。

投稿2019/08/01 08:44

set0gut1

総合スコア2413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/08/01 08:56 編集

ご回答ありがとうございます。 GitBashの方で、「$ ssh git@github.com」こちらのコマンドを打ち込みましたら、 「The authenticity of host 'github.com (???)' can't be established. RSA key fingerprint is SHA256:???」 Are you sure you want to continue connecting (yes/no)?] との表示が出ました。公開してはいけない情報が含まれている気がしましたので、その部分は「???」に置きかえさせて頂きました。 上記の表示は何を意味しているのでしょうか...?
aae_11

2019/08/01 09:02 編集

自分はGitを使い始めたばかりで、特段、SSHなどの接続設定はした記憶がない為、SSHで、GitHubには接続してはいないかと思います...
set0gut1

2019/08/01 10:22

> The authenticity of host 'github.com (???)' can't be established. > RSA key fingerprint is SHA256:??? 初めて繋ぐホストのときに出るメッセージです。このメッセージの後に > Are you sure you want to continue connecting (yes/no)? と出てると思うので、これに yes と答えると接続を試みます。 ssh接続設定をしていないはずっていうのが謎ですね…。。
aae_11

2019/08/01 12:19 編集

そうなんですね... ありがとうございます。 自分は、そういった接続設定を行っていないのに、何故接続できたのかというのが分からない点でもありますね...
guest

0

権限がないとpushはできません。
それでも不安ならプライベートリポジトリにすればいいのでは。

投稿2019/08/01 08:22

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Gitにて、Githubにファイルをpushする際、「$git remote add origin git@github.com/example/example.git」「$ git push origin master」のようにして、ファイルをpushすることができますが、pushする際にgithubのパスワードや登録メールアドレスは入力することはなかったのですが、この状態では他人が勝手にpushすることができてしまうと思います。

すでに何かしらの方法でログインしているので、いま問われなかっただけかと思います。キーのない他人のGitHubにプッシュすることはもちろんできません。

投稿2019/08/01 08:20

maisumakun

総合スコア145201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/08/01 08:23

ご回答ありがとうございます。 GitHubには、確かにwebブラウザの方で、ログイン状態だったのですが、ログイン状態にしている間は、他人からpushされてしまう状態であるということでしょうか...?
maisumakun

2019/08/01 08:26

> ログイン状態にしている間は、他人からpushされてしまう状態であるということでしょうか...? あなたがお使いのマシンに他人もアクセスできるなら、そうなります(ただ、それはそもそもセキュリティ的にまずいわけでして)。
y_waiwai

2019/08/01 08:26

実際にやってみようよ
aae_11

2019/08/01 09:11

githubからログアウトし、コマンドで、再度pullしpushしてみましたら、普通にpushできていました...
y_waiwai

2019/08/01 09:31

他人のリポジトリですか?
aae_11

2019/08/01 09:38

いえ、自分のリポジトリです。。。
aae_11

2019/08/01 09:40

いまいち、どのようにして、pushした際に、push先のリポジトリのアカウントが自分のものかということを、判別しているのかが疑問なんですよね...
y_waiwai

2019/08/01 09:44

GitHUBでは(も)ユーザごとに暗号鍵を登録してます。 Gitからのアクセス時にはその暗号鍵をやり取りしてそれが一致しないとアクセスできないようになってます なので、他人のリポジトリはその暗号鍵がないとアクセスできません
aae_11

2019/08/01 09:59 編集

ありがとうございます。 GitHubとGitで登録した暗号鍵が一致しないとアクセスできないとのことなのですが、特段Gitの方でも暗号鍵の設定などは行っていない状態です。 ユーザーの設定は、最初に、「$ git config --global user.name "<ユーザ名>"]」 「$ git config --global user.email "<メールアドレス>"」を登録したのみなのですが、こちらが関係していたりはしますでしょうか...?
y_waiwai

2019/08/01 10:24

まあ、あなたが暗号鍵を登録してるのかどうかはわかりませんが、他の全員は登録しているんで、あなたにアクセスはできません。ご心配なく。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問