# SSH経由のGit

huggingface.co上のリポジトリに、SSH（Secure Shell Protocol）を使用してデータにアクセスし、書き込むことができます。SSH経由で接続すると、ローカルマシンの秘密鍵ファイルを使用して認証が行われます。

変更をプッシュしたり、プライベートリポジトリをクローンしたりする一部の操作では、huggingface.co のアカウントに SSH 公開鍵をアップロードする必要があります。

既存のSSHキーを使用するか、huggingface.co用に新しいキーを生成できます。

## 既存のSSHキーの確認

既存のSSHキーがある場合、そのキーを使用してSSH経由のGit操作を認証できます。

SSHキーは通常、MacおよびLinuxでは`~/.ssh`以下、Windowsでは`C:\\Users\\<username>\\.ssh`以下に配置されています。そのディレクトリ内のファイルをリスト表示し、次の形式のファイルを探してください。

- id_rsa.pub
- id_ecdsa.pub
- id_ed25519.pub

これらのファイルには、SSH公開鍵が含まれています。

`~/.ssh` の下にそのようなファイルがない場合は、[新しいキーを生成](#generating-a-new-ssh-keypair)する必要があります。それ以外の場合は、[既存の SSH 公開鍵を huggingface.co アカウントに追加](#add-a-ssh-key-to-your-account)できます。

## 新しいSSH鍵ペアの生成

マシンにSSHキーがない場合は、`ssh-keygen`を使用して新しいSSHキーペア（公開鍵と秘密鍵）を生成できます。

```
$ ssh-keygen -t ed25519 -C "your.email@example.co"
```

プロンプトが表示された際は、パスフレーズの入力をお勧めします。パスフレーズはセキュリティの追加のレイヤーであり、SSHキーを使用するたびに求められるパスワードです。

新しいキーが生成されたら、`ssh-add` を使用して SSH エージェントに追加します:

```
$ ssh-add ~/.ssh/id_ed25519
```

SSHキーの保存先をデフォルト以外の場所にした場合は、`~/.ssh/id_ed25519`を、実際に使用したファイルの場所に置き換える必要があります。

## アカウントにSSHキーを追加する

SSH 経由でプライベートリポジトリにアクセスしたり、SSH 経由で変更をプッシュしたりするには、huggingface.co アカウントに SSH 公開鍵を追加する必要があります。SSH 鍵は[ユーザー設定](https://huggingface.co/settings/keys)で管理できます。

アカウントにSSHキーを追加するには、"Add SSH key"ボタンをクリックしてください。

次に、このキーの名前を入力します（例: "Personal computer"）。その後、**公開** SSH キーの内容をコピーして、以下の領域に貼り付けてください。公開キーは、前回のステップで見つけた、または生成した `~/.ssh/id_XXXX.pub` ファイル内にあります。

「Add key」をクリックすると、ほら！huggingface.co アカウントに SSH キーが追加されました。

> [!NOTE]
> [SSO](./security-sso-basic#access-tokens-and-ssh-keys)を強制している組織のメンバーである場合は、その組織のリポジトリをpullまたはpushする前に、SSHキーをその組織に対して承認してください。キーの横にあるメニューを開き、**Configure SSO**をクリックし、組織の横にある**Authorize**をクリックします。

## SSH認証のテスト

huggingface.coアカウントにSSHキーを追加した後、接続が期待通りに動作するかテストできます。

ターミナルで、次を実行します:
```
$ ssh -T git@hf.co
```

ユーザー名が表示されたメッセージを確認できた場合、おめでとうございます。すべて正常に完了しており、SSH経由でgitを使用する準備が整いました。

それ以外の場合、メッセージに以下のような内容が表示されている場合は、SSHキーが実際にSSHエージェントによって使用されていることを確認してください。
```
Hi anonymous, welcome to Hugging Face.
```

## Hugging FaceのSSH鍵のフィンガープリント

公開鍵のフィンガープリントは、リモートサーバーへの接続を検証するために使用できます。

これらは Hugging Face の公開鍵のフィンガープリントです:

> SHA256:aBG5R7IomF4BSsx/h6tNAUVLhEkkaNGB8Sluyh/Q/qY (ECDSA) SHA256:skgQjK2+RuzvdmHr24IIAJ6uLWQs0TGtEUt3FtzqirQ (DSA - 非推奨) SHA256:dVjzGIdV7d6cwKIeZiCoRMa2gMvSKfGZAvHf4gMiMao (ED25519) SHA256:uqjYymysBGCXXiMVebB8L8RIuWbPSKGBxQQNhcT5a3Q (RSA)

Hugging Faceのホストを手動で検証することを避けるために、~/.ssh/known_hostsファイルに以下のsshキーエントリを追加できます。

```
hf.co ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDtPB+snz63eZvTrbMY2Qt39a6HYile89JOum55z3lhIqAqUHxLtXFd+q+ED8izQvyORFPSmFIaPw05rtXo37bm+ixL6wDmvWrHN74oUUWmtrv2MNCLHE5VDb3+Q6MJjjDVIoK5QZIuTStlq0cUbGGxQk7vFZZ2VXdTPqgPjw4hMV7MGp3RFY/+Wy8rIMRv+kRCIwSAOeuaLPT7FzL0zUMDwj/VRjlzC08+srTQHqfoh0RguZiXZQneZKmM75AFhoMbP5x4AW2bVoZam864DSGiEwL8R2jMiyXxL3OuicZteZqll0qfRlNopKnzoxS29eBbXTr++ILqYz1QFqaruUgqSi3MIC9sDYEqh2Q8UxP5+Hh97AnlgWDZC0IhojVmEPNAc7Y2d+ctQl4Bt91Ik4hVf9bU+tqMXgaTrTMXeTURSXRxJEm2zfKQVkqn3vS/zGVnkDS+2b2qlVtrgbGdU/we8Fux5uOAn/dq5GygW/DUlHFw412GtKYDFdWjt3nJCY8=
hf.co ssh-dss AAAAB3NzaC1kc3MAAACBAORXmoE8fn/UTweWy7tCYXZxigmODg71CIvs/haZQN6GYqg0scv8OFgeIQvBmIYMnKNJ7eoo5ZK+fk1yPv8aa9+8jfKXNJmMnObQVyObxFVzB51x8yvtHSSrL4J3z9EAGX9l9b+Fr2+VmVFZ7a90j2kYC+8WzQ9HaCYOlrALzz2VAAAAFQC0RGD5dE5Du2vKoyGsTaG/mO2E5QAAAIAHXRCMYdZij+BYGC9cYn5Oa6ZGW9rmGk98p1Xc4oW+O9E/kvu4pCimS9zZordLAwHHWwOUH6BBtPfdxZamYsBgO8KsXOWugqyXeFcFkEm3c1HK/ysllZ5kM36wI9CUWLedc2vj5JC+xb5CUzhVlGp+Xjn59rGSFiYzIGQC6pVkHgAAAIBve2DugKh3x8qq56sdOH4pVlEDe997ovEg3TUxPPIDMSCROSxSR85fa0aMpxqTndFMNPM81U/+ye4qQC/mr0dpFLBzGuum4u2dEpjQ7B2UyJL9qhs1Ubby5hJ8Z3bmHfOK9/hV8nhyN8gf5uGdrJw6yL0IXCOPr/VDWSUbFrsdeQ==
hf.co ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL0wtM52yIjm8gRecBy2wRyEMqr8ulG0uewT/IQOGz5K0ZPTIy6GIGHsTi8UXBiEzEIznV3asIz2sS7SiQ311tU=
hf.co ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINJjhgtT9FOQrsVSarIoPVI1jFMh3VSHdKfdqp/O776s
```

