# Claude Code на linux-сервере

# SSH-подключение

### <span style="color: rgb(18, 80, 237);">Подключение</span>

##### Host: **62.84.181.155** или **22.claude.fitnessmama.md**

##### Вход по паролю: **ssh &lt;username&gt;@&lt;host&gt;**

**Пример:**

```bash
ssh olesya@62.84.181.155
```

### <span style="color: rgb(18, 80, 237);">Создание ssh-ключа</span>

<span style="color: rgb(224, 62, 45);">**Примечание: в примерах имя ключа - claude\_key. Если вы назовёте ключ иначе, не забудьте учесть это в тех командах, где встречается "*claude\_key*" или "*claude\_key.pub*"**</span>

<details id="bkmrk-windows%3A-%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D0%BC-p"><summary>Windows</summary>

- **Запускаем Powershell <span style="color: rgb(224, 62, 45);">от имени администратора</span>.**
- **Создаём папку для ключей:**

```powershell
if (!(Test-Path $env:USERPROFILE\.ssh)) {
        Write-Host "Папка .ssh не найдена — создаём её..." -ForegroundColor Yellow
        New-Item -ItemType Directory -Path $env:USERPROFILE\.ssh
        Write-Host "Папка .ssh создана" -ForegroundColor Green
    } else {
        Write-Host "Папка .ssh уже существует" -ForegroundColor Green
    }
```

- **Создаём SSH-ключ:**

```powershell
$keyPath = "$env:USERPROFILE\.ssh\claude_key"
if (!(Test-Path $keyPath)) {
    Write-Host "Создаём новый SSH-ключ..." -ForegroundColor Yellow
    ssh-keygen -t ed25519 -f $keyPath -N ""
    Write-Host "SSH-ключ создан!" -ForegroundColor Green
} else {
    Write-Host "SSH-ключ уже существует: $keyPath" -ForegroundColor Green
}
```

##### В директории <span style="color: rgb(9, 128, 29);">C:\\Users\\&lt;ваш юзернейм&gt;\\.ssh</span> появятся файлы <span style="color: rgb(9, 128, 29);">claude\_key</span> и <span style="color: rgb(9, 128, 29);">claude\_key.pub</span>

</details><details id="bkmrk-macos%2Flinux-%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D0%B2%D0%B0%D0%B5"><summary>MacOS/Linux</summary>

- **Открываем терминал.**
- **Создаем папку для ключей:**

```bash
SSH_DIR="$HOME/.ssh"

if [ ! -d "$SSH_DIR" ]; then
    echo "Папка .ssh не найдена — создаём её..."
    mkdir -p "$SSH_DIR"
    chmod 700 "$SSH_DIR"
    echo "Папка .ssh создана"
else
    echo "Папка .ssh уже существует"
fi
```

- **Создаем SSH-ключ:**

```bash
KEY_PATH="$HOME/.ssh/claude_key"

if [ ! -f "$KEY_PATH" ]; then
    echo "Создаём новый SSH-ключ..."
    ssh-keygen -t ed25519 -f "$KEY_PATH"
    echo "SSH-ключ создан!"
else
    echo "SSH-ключ уже существует: $KEY_PATH"
fi
```

##### В директории <span style="color: rgb(9, 128, 29);">/home/&lt;ваш юзернейм&gt;/.ssh</span> появятся файлы <span style="color: rgb(9, 128, 29);">claude\_key</span> и <span style="color: rgb(9, 128, 29);">claude\_key.pub</span>

</details>
### <span style="color: rgb(18, 80, 237);">Копирование публичного ключа на сервер</span>

##### <span style="color: rgb(0, 0, 0);">**Windows** </span>

**<span style="color: rgb(0, 0, 0);">У себя на компьютере в Powershell:</span>**

```powershell
type $env:USERPROFILE\.ssh\claude_key.pub | ssh <user>@62.84.181.155 "cat >> ~/.ssh/authorized_keys"
```

##### **MacOS/Linux**

**В терминале:**

```bash
cat ~/.ssh/claude_key.pub | ssh <user>@62.84.181.155 "cat >> ~/.ssh/authorized_keys"
```

### <span style="color: rgb(18, 80, 237);">Настройка удобного алиаса</span>

<details id="bkmrk-windows-%D0%92-powershell"><summary>Windows</summary>

**В Powershell от имени администратора:**

```powershell
# Путь к SSH-директории и config
$sshDir = "$env:USERPROFILE\.ssh"
$configPath = "$sshDir\config"

if (!(Test-Path $sshDir)) {
    New-Item -ItemType Directory -Path $sshDir | Out-Null
}

if (!(Test-Path $configPath)) {
    New-Item -ItemType File -Path $configPath | Out-Null
}

# Блок для добавления (ЗАМЕНИ <username>)
$block = @"
Host claude
    HostName 22.claude.fitnessmama.md
    User <username>
    IdentityFile ~/.ssh/claude_key
    IdentitiesOnly yes
"@

$content = Get-Content $configPath -Raw
if ($content -notmatch "Host claude") {
    Add-Content -Path $configPath -Value "`n$block"
    Write-Host "Конфигурация добавлена"
} else {
    Write-Host "Host claude уже есть в config"
}

icacls $configPath /inheritance:r | Out-Null
icacls $configPath /grant:r "$($env:USERNAME):(R,W)" | Out-Null
```

</details><details id="bkmrk-macos%2Flinux-%D0%92-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD"><summary>MacOS/Linux</summary>

**В терминале:**

```bash
# Путь
SSH_DIR="$HOME/.ssh"
CONFIG_FILE="$SSH_DIR/config"

mkdir -p "$SSH_DIR"
chmod 700 "$SSH_DIR"

touch "$CONFIG_FILE"
chmod 600 "$CONFIG_FILE"

# Добавляем блок (ЗАМЕНИ <username>)
if ! grep -q "Host claude" "$CONFIG_FILE"; then
cat >> "$CONFIG_FILE" <<EOF

Host claude
    HostName 22.claude.fitnessmama.md
    User <username>
    IdentityFile ~/.ssh/claude_key
    IdentitiesOnly yes
EOF
    echo "Конфигурация добавлена"
else
    echo "Host claude уже есть в config"
fi
```

</details><span style="color: rgb(9, 128, 29);">**После создания такого конфига можно не писать ssh &lt;username&gt;@&lt;host&gt; или scp &lt;username&gt;@&lt;host&gt;.**</span>

<span style="color: rgb(9, 128, 29);">**Достаточно ssh claude или scp claude. Пароль так же не будет нужен, если не выполняете команды на сервере с sudo**</span>

# Синхронизация Syncthing