{
    "componentChunkName": "component---node-modules-lekoarts-gatsby-theme-minimal-blog-core-src-templates-post-query-tsx",
    "path": "/proxmox-create-ubuntu-container-enabll-ssh",
    "result": {"data":{"post":{"slug":"/proxmox-create-ubuntu-container-enabll-ssh","title":"Proxmox: Create Ubuntu Container and Enable SSH Access (With Root Password Login)","date":"20.06.2024","tags":[{"name":"Homelab","slug":"homelab"},{"name":"Proxmox","slug":"proxmox"}],"description":null,"canonicalUrl":null,"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) { o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"slug\": \"proxmox-create-ubuntu-container-enabll-ssh\",\n  \"title\": \"Proxmox: Create Ubuntu Container and Enable SSH Access (With Root Password Login)\",\n  \"date\": \"2024-06-20T00:00:00.000Z\",\n  \"tags\": [\"Homelab\", \"Proxmox\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Overview\")), mdx(\"p\", null, \"While setting up a new Ubuntu 22.04 container in Proxmox, I needed to enable SSH access using the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"root\"), \" user and password. By default, LXC containers created from Ubuntu templates come with password login \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"disabled\"), \" for root via SSH. Here's how to install the container and make it SSH-accessible securely.\"), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 1: Download Ubuntu Template\")), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"In the Proxmox web UI:\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Navigate to your \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Proxmox node\"), \" > \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"local (storage)\"), \" > \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"CT Templates\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Click \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Templates\"), \" > select \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"ubuntu-22.04-standard_*.tar.zst\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Click \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Download\"))))), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 2: Create the LXC Container\")), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Go to \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Create CT\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Fill in basic details:\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Hostname\"), \": \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"my-ubuntu-ct\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Password\"), \": set a strong root password (important for later SSH access)\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Choose the downloaded \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Ubuntu 22.04 template\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Set \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Disk Size\"), \", \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"CPU\"), \", \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Memory\"), \", and \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Network\"), \" as needed\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Under \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"DNS\"), \" and \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Options\"), \", defaults are fine\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Click \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Finish\"), \" to create the container\")), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 3: Start and Enter the Container\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"pct start 100\\npct enter 100\\n\")), mdx(\"p\", null, \"(Replace \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"100\"), \" with your container ID)\"), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 4: Install and Enable SSH Server\")), mdx(\"p\", null, \"Inside the container:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"apt update && apt install -y openssh-server\\n\")), mdx(\"p\", null, \"Make sure the SSH service is running:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"systemctl enable ssh\\nsystemctl start ssh\\n\")), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 5: Enable Root SSH Password Login\")), mdx(\"p\", null, \"Edit SSH config:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"nano /etc/ssh/sshd_config\\n\")), mdx(\"p\", null, \"Make sure these lines are set:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"PermitRootLogin yes\\nPasswordAuthentication yes\\n\")), mdx(\"p\", null, \"Save and restart SSH:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"systemctl restart ssh\\n\")), mdx(\"hr\", null), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Step 6: Exit and Test From Your Host\")), mdx(\"p\", null, \"Exit the container:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"exit\\n\")), mdx(\"p\", null, \"Get container's IP:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"pct exec 100 ip a\\n\")), mdx(\"p\", null, \"From your Proxmox host or laptop:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"ssh root@<container-ip>\\n\")), mdx(\"p\", null, \"Enter the password you set during container creation.\"), mdx(\"h3\", null, mdx(\"strong\", {\n    parentName: \"h3\"\n  }, \"Conclusion\")), mdx(\"p\", null, \"Ubuntu containers on Proxmox are lightweight, fast to boot, and ideal for development and testing. But for secure SSH access, especially using \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"root\"), \" login, a few default settings must be changed. Once configured properly, it becomes a clean and scriptable environment to build on.\"), mdx(\"hr\", null));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"Overview While setting up a new Ubuntu 22.04 container in Proxmox, I needed to enable SSH access using the  root  user and password. By…","timeToRead":1,"banner":null}},"pageContext":{"slug":"/proxmox-create-ubuntu-container-enabll-ssh","formatString":"DD.MM.YYYY"}},
    "staticQueryHashes": ["2744905544","3090400250","318001574"]}