{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "M9K blog: заметки с тегом ssh",
    "_rss_description": "Заметки обо всём: devops, lifestyle, культура.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog.m9k.space\/tags\/ssh\/",
    "feed_url": "https:\/\/blog.m9k.space\/tags\/ssh\/json\/",
    "icon": "https:\/\/blog.m9k.space\/user\/userpic@2x.jpg?1769095194",
    "author": {
        "name": "M",
        "url": "https:\/\/blog.m9k.space\/",
        "avatar": "https:\/\/blog.m9k.space\/user\/userpic@2x.jpg?1769095194"
    },
    "items": [
        {
            "id": "202",
            "url": "https:\/\/blog.m9k.space\/all\/linux-passwordless-oneliner\/",
            "title": "Linux Passwordless oneliner",
            "content_html": "<pre class=\"e2-text-code\"><code class=\"\">TARGET=user@host; PORT=22; [[ -r ~\/.ssh\/id_ed25519.pub ]] || ssh-keygen -t ed25519 -N &quot;&quot; -f ~\/.ssh\/id_ed25519; ssh -p &quot;$PORT&quot; &quot;$TARGET&quot; 'umask 077; mkdir -p ~\/.ssh &amp;&amp; cat &gt; ~\/.ssh\/authorized_keys' &lt; ~\/.ssh\/id_ed25519.pub &amp;&amp; ssh -p &quot;$PORT&quot; &quot;$TARGET&quot; 'echo &quot;&gt;&gt;&gt; Root доступ подтверждён&quot;'<\/code><\/pre>",
            "date_published": "2025-08-25T10:44:17+00:00",
            "date_modified": "2025-08-25T10:44:14+00:00",
            "_date_published_rfc2822": "Mon, 25 Aug 2025 10:44:17 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "202",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "200",
            "url": "https:\/\/blog.m9k.space\/all\/curl-over-ssh-tunnel\/",
            "title": "Curl over ssh-tls-tunnel",
            "content_html": "<p>Есть ресурс resource.name, на который нужно ходить curl-ом с засылкой данных через JSON. Специфика ресурса такова, что он принимает соединения через TLS 1.3.<br \/>\nЕсть сервер A server.name, на котором нет выхода на нужный ресурс, но есть Nginx, и есть ssh-доступ до сервера B<br \/>\nЕсть сервер B, на котором есть выход на нужный ресурс, но сам сервер очень старый, и TLS на нём не проходит по требования resource.name.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">printf '' | openssl s_client -connect 127.0.0.1:8443 -servername resource.name -tls1_3 -brief<\/code><\/pre><p>Костылим:<br \/>\nНа сервере A поднимаем туннель на внутренний порт:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">ssh -fN -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L 8443:resource.name:443 user@serverB<\/code><\/pre><p>На Nginx рисуем конфиг:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">server {\r\n        listen 9090;\r\n        server_name         server.name;\r\n\r\n        access_log  \/site\/logs\/nginx\/port_9090.log  main;\r\n        error_log   \/site\/logs\/nginx\/port_9090.error.log;\r\n\r\nlocation \/ {\r\n        proxy_pass https:\/\/127.0.0.1:8443;\r\n\r\n        proxy_set_header Host resource.name;\r\n        proxy_ssl_server_name on;\r\n        proxy_ssl_name resource.name;\r\n        proxy_ssl_protocols TLSv1.3;\r\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n        proxy_set_header X-Forwarded-Proto https;\r\n        proxy_connect_timeout 10s;\r\n        proxy_read_timeout 60s;\r\n        proxy_ssl_verify off;\r\n}\r\n}<\/code><\/pre><p>Кидаемся тестовым запросом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">curl -v -X POST 'http:\/\/server.name:9090\/resource' -H 'Content-Type: application\/json' --data '{&quot;login&quot;:&quot;$LOGIN&quot;,&quot;password&quot;:&quot;$PASSWORD&quot;}'<\/code><\/pre>",
            "date_published": "2025-08-14T10:21:23+00:00",
            "date_modified": "2025-08-14T10:43:11+00:00",
            "_date_published_rfc2822": "Thu, 14 Aug 2025 10:21:23 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "200",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "48",
            "url": "https:\/\/blog.m9k.space\/all\/firewalld-acl-ssh\/",
            "title": "Firewalld ACL (SSH)",
            "content_html": "<p>Просмотр всех зон<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --list-all-zones<\/code><\/pre><p>Просмотр правил конкретной зоны<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --zone=internal --list-all<\/code><\/pre><p>Добавление порта в зону<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --zone=internal --add-port=22\/tcp --permanent<\/code><\/pre><p>Добавление сервиса в зону<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --zone=internal --add-service=ssh --permanent<\/code><\/pre><p>Добавление адреса в зону<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --zone=internal --add-source=xxx.xxx.xx.x\/32 --permanent<\/code><\/pre><p>Повторное считывание правил<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --reload<\/code><\/pre><p>Удаление сервиса (временное)<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">firewall-cmd --zone=public --remove-service=ssh<\/code><\/pre>",
            "date_published": "2020-08-19T04:37:05+00:00",
            "date_modified": "2020-08-19T04:36:59+00:00",
            "_date_published_rfc2822": "Wed, 19 Aug 2020 04:37:05 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "48",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3877,
    "_e2_ua_string": "E2 (v3877; Aegea)"
}