{"id":1545,"date":"2017-03-12T23:50:17","date_gmt":"2017-03-12T14:50:17","guid":{"rendered":"http:\/\/43.203.250.216\/?p=1545"},"modified":"2026-02-04T11:50:43","modified_gmt":"2026-02-04T02:50:43","slug":"emacs%eb%a1%9c-aws-ec2-%ec%9b%90%ea%b2%a9%ec%a7%80-%ed%8c%8c%ec%9d%bc-%ed%8e%b8%ec%a7%91","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=1545","title":{"rendered":"Emacs\ub85c AWS EC2 \uc6d0\uaca9\uc9c0 \ud30c\uc77c \ud3b8\uc9d1"},"content":{"rendered":"<p><em>Emacs\uc758 TRAMP mode\ub97c \uc0ac\uc6a9\ud558\uba74 \uc6d0\uaca9\uc11c\ubc84\uc5d0 \uc788\ub294 \ubd88\ub7ec\uc640\uc11c \ubc14\ub85c \ud3b8\uc9d1\ud560 \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 ssh\uac00 \ub3cc\uace0\uc788\ub294 AWS EC2 \uc11c\ubc84\uc758 \ud30c\uc77c\uc744 TRAMP mode\ub85c \ud3b8\uc9d1\ud558\uae30 \uc704\ud55c \uc124\uc815\uc744 \uc124\uba85\ud55c\ub2e4.<\/em><\/p>\n<p><strong>Emacs<\/strong>: version 25.1 (macOS)<\/p>\n<p>init.el\uc5d0 <a href=\"https:\/\/www.emacswiki.org\/emacs\/TrampMode\">TRAMP mode<\/a> \uc124\uc815\uc744 \ucd94\uac00.<\/p>\n<pre class=\"theme:terminal lang:default highlight:0 decode:true\">;TRAMP\n(require 'tramp)\n(setq tramp-default-method \"ssh\")<\/pre>\n<p>\ud3b8\uc9d1\ud560 \uc6d0\uaca9\uc9c0 \ud30c\uc77c\uc744 \ubd88\ub7ec \uc62c \ub54c\ub294 <em style=\"background-color: #ffffff; color: #444444; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: 1rem;\">\uacc4\uc815@\ud638\uc2a4\ud2b8:\ud30c\uc77c\uacbd\ub85c<\/em><span style=\"background-color: #ffffff; color: #444444; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: 1rem;\"> \ud615\uc2dd\uc73c\ub85c \ud558\uba74\ub418\ub294\ub370, EC2\uc758 pem \ud0a4\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\ub294 &#8216;-i&#8217; option\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4. \ub9e4\ubc88 \ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud558\ub294\uac8c \uadc0\ucc2e\ub2e4\uba74 ssh-add\ub85c \ud0a4\ub97c \ucd94\uac00\ud55c\ub2e4.<\/span><\/p>\n<pre class=\"theme:terminal lang:default highlight:0 decode:true \">$ ssh-add ~\/.ssh\/ec2_key.pem \nIdentity added: \/Users\/USER\/.ssh\/ec2_key.pem (\/Users\/USER\/.ssh\/ec2_key.pem)<\/pre>\n<p>\uc774\uc81c Emacs\uc5d0\uc11c \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub85c \uc6d0\uaca9 \ud30c\uc77c\uc5d0 \uc811\uc18d\ud558\uac70\ub098 \ud30c\uc77c \ubaa9\ub85d\uc744 \ubd88\ub7ec \uc62c \uc218 \uc788\ub2e4.<\/p>\n<pre class=\"theme:terminal lang:default highlight:0 decode:true\">Find file: \/USERID@REMOTE_SERVER:~\/<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Emacs\uc758 TRAMP mode\ub97c \uc0ac\uc6a9\ud558\uba74 \uc6d0\uaca9\uc11c\ubc84\uc5d0 \uc788\ub294 \ubd88\ub7ec\uc640\uc11c \ubc14\ub85c \ud3b8\uc9d1\ud560 \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 ssh\uac00 \ub3cc\uace0\uc788\ub294 AWS EC2 \uc11c\ubc84\uc758 \ud30c\uc77c\uc744 TRAMP mode\ub85c \ud3b8\uc9d1\ud558\uae30 \uc704\ud55c \uc124\uc815\uc744 \uc124\uba85\ud55c\ub2e4. Emacs: version 25.1 (macOS) init.el\uc5d0 TRAMP mode \uc124\uc815\uc744 \ucd94\uac00. ;TRAMP (require &#8216;tramp) (setq tramp-default-method &#8220;ssh&#8221;) \ud3b8\uc9d1\ud560 \uc6d0\uaca9\uc9c0 \ud30c\uc77c\uc744 \ubd88\ub7ec \uc62c \ub54c\ub294 \uacc4\uc815@\ud638\uc2a4\ud2b8:\ud30c\uc77c\uacbd\ub85c \ud615\uc2dd\uc73c\ub85c \ud558\uba74\ub418\ub294\ub370, EC2\uc758 pem \ud0a4\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\ub294 &#8216;-i&#8217; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[6],"tags":[41,70,218,117,132],"class_list":["post-1545","post","type-post","status-publish","format-standard","hentry","category-tools","tag-emacs","tag-key","tag-macos","tag-ssh","tag-tramp"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2561,"url":"https:\/\/litcoder.com\/?p=2561","url_meta":{"origin":1545,"position":0},"title":"macOS terminal\ub85c Emacs \uc0ac\uc6a9 \ud560 \ub54c meta key \ubcc0\uacbd","author":"litcoder","date":"2020\ub144 8\uc6d4 11\uc77c","format":false,"excerpt":"\uc11c\ubc84\uc5d0 \uc788\ub294 \uc6d0\uaca9 \ud30c\uc77c\uc744 \ud3b8\uc9d1 \ud560 \ub54c \ub300\ubd80\ubd84\uc740 Mac\uc6a9 Emacs\uc5d0\uc11c Tramp mode\ub85c \ud560 \uc218 \uc788\uc9c0\ub9cc, \uac00\ub054\uc529 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud55c \ud130\ubbf8\ub110\uc5d0\uc11c \uc9c1\uc811 Emacs\ub97c \ub744\uc6b0\ub294 \uacbd\uc6b0\uac00 \uc788\ub294\ub370 \uc774 \ub54c\ub294 ESC key\uac00 meta\ub85c \ud560\ub2f9 \ub418\uc5b4\uc11c \ub3c4\ubb34\uc9c0 \uc801\uc751 \ud558\uae30\uac00 \ud798\ub4e4\ub2e4. \uc774 \ub54c\ub294 terminal\uc758 Profiles -> Keyboard\uc5d0\uc11c \uc544\ub7ab \ucabd\uc5d0 \uc788\ub294 \"Use Option as Meta key\"\ub97c \uc124\uc815\ud558\uba74\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/SC_option_as_meta.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/SC_option_as_meta.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/SC_option_as_meta.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":4082,"url":"https:\/\/litcoder.com\/?p=4082","url_meta":{"origin":1545,"position":1},"title":"macOS \uc124\uce58 \ud6c4 \uac1c\ubc1c\ud658\uacbd\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2026\ub144 2\uc6d4 11\uc77c","format":false,"excerpt":"1. Xcode \uc640 Xcode Command Line Tools \uc124\uce58 Xcode Command Line Tools\uc5d0\ub294 \ucef4\ud30c\uc77c\ub7ec\ub4f1\uc758 \ub3c4\uad6c\uac00 \ub4e4\uc5b4 \uc788\uc5b4\uc11c \ub2e4\ub978 \uc124\uc815\ub4e4\uacfc \uad00\uacc4\uac00 \uc788\uc5b4 \uac00\uc7a5 \uba3c\uc800 \uc124\uce58 \ud574\uc900\ub2e4. Xcode\ub294 App Store\uc5d0\uc11c \uc124\uce58\ud558\uba74 \ub418\uace0, Xcode Command Line Tools\ub294 \uc544\ub798\uc758 \uba85\ub839\uc5b4\ub97c \ud130\ubbf8\ub110\uc5d0\uc11c \uc2e4\ud589\ud55c\ub2e4. xcode-select --install 2. \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790 \uc124\uce58 \uac1c\ubc1c\ub4f1\uc5d0 \ud544\uc694\ud55c \uc5ec\ub7ec\uac00\uc9c0 \ub3c4\uad6c\ub4e4\uc744 \uc124\uce58\ud558\ub824\uba74 Macports \ud639\uc740\u2026","rel":"","context":"&quot;Gadgets&quot;\uc5d0\uc11c","block_context":{"text":"Gadgets","link":"https:\/\/litcoder.com\/?cat=3"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":4342,"url":"https:\/\/litcoder.com\/?p=4342","url_meta":{"origin":1545,"position":2},"title":"[Tip] Emacs: rust-analyzer-tramp\uac00 \uacc4\uc18d \uc8fd\ub294 \ubb38\uc81c","author":"litcoder","date":"2026\ub144 4\uc6d4 29\uc77c","format":false,"excerpt":"Remote server\uc5d0 tramp mode\ub85c rust file\uc744 \uc77d\uc5b4\uc11c rust-mode\uc5d0 \uc9c4\uc785\ud55c \ud6c4\uc5d0 \ubbf8\ub2c8\ubc84\ud37c\uc5d0 \uc544\ub798\uc640 \uac19\uc740 \uacbd\uace0\uac00 \ub728\ub294\ub370, 'y'\ub97c \uc785\ub825\ud574\uc11c rust-analyzer-tramp\ub97c \uc7ac\uc2e4\ud589 \uc2dc\ucf1c\ub3c4 \uacc4\uc18d\ud574\uc11c \uc8fd\uc5b4\uc11c \uac19\uc740 \uc624\ub958\uac00 \ubcf4\uc774\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. rust-analyzer \uc124\uce58 \ud655\uc778 Remote server\uce21\uc5d0 rust-analyzer\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc73c\uba74 \uc774\uc640 \uac19\uc740 \ubb38\uc81c\uac00 \uc0dd\uae38 \uc218 \uc788\uc73c\ub2c8 \ub2e4\uc74c\uc758 \uba85\ub839\uc5b4\ub85c rust-analyzer\ub97c update\ud574\ubcf8\ub2e4. \ub9cc\uc57d \uc124\uce58 \ub418\uc5b4 \uc788\uc9c0\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/rust-analyzer-tramp-error.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/rust-analyzer-tramp-error.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/rust-analyzer-tramp-error.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2575,"url":"https:\/\/litcoder.com\/?p=2575","url_meta":{"origin":1545,"position":3},"title":"Lightshail Ubuntu \ubc30\ud3ec\ud310 \uc5c5\uadf8\ub808\uc774\ub4dc \ud6c4 ssh \uc811\uc18d\uc774 \uc548\ub41c\ub2e4.","author":"litcoder","date":"2020\ub144 10\uc6d4 15\uc77c","format":false,"excerpt":"\ub9dd\ud588\ub2e4! Litghtsail\uc758 Ubuntu \ubc30\ud3ec\ud310\uc774 \ub108\ubb34 \uc624\ub798\uc804 \uac83\uc774\ub77c \ucf58\uc194\uc5d0 \uc811\uadfc\ud574\uc11c \uc870\uc2ec\uc2a4\ub7fd\uac8c screen session\ub3c4 \uc0c8\ub85c \ub9cc\ub4e4\uc5b4 \uac00\uba74\uc11c \uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \ud588\ub294\ub370 \ub05d\ub098\uace0 \ub098\ub2c8 SSH\uac00 \uc548\ub41c\ub2e4. \uc544\ub9c8\ub3c4 \uc911\uac04\uc5d0 SSH\uad00\ub828 \ud658\uacbd\uc124\uc815\uc744 \ud30c\uc77c\uc744 \ubcc0\uacbd\ud560 \uac83\uc778\uc9c0 \ubb3b\ub294 \uc120\ud0dd\uba54\ub274\uac00 \ub098\uc654\ub294\ub370, \ud604\uc7ac \uc124\uc815\uc744 \uadf8\ub0e5 \uc4f0\uaca0\ub2e4\uace0 \ud588\ub358\uac8c \ubb38\uc81c\uc778\uac83 \uac19\ub2e4. \ub2e4\ud589\ud788 blogging service\ub294 \uc798\ub3cc\uc544 \uac00\uace0 \uc788\uc9c0\ub9cc SSH\uac00 \uc548\ub418\uba74 \uc11c\ubc84\uad00\ub9ac\ub97c \ud560 \ubc29\ubc95\uc774 \uc5c6\ub294\ub370...\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/05\/sc_wp_instance_from_snapshot-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/05\/sc_wp_instance_from_snapshot-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/05\/sc_wp_instance_from_snapshot-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2024\/05\/sc_wp_instance_from_snapshot-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4409,"url":"https:\/\/litcoder.com\/?p=4409","url_meta":{"origin":1545,"position":4},"title":"[Tip] \ud3ec\ud2b8 \ud3ec\uc6cc\ub529 \uc124\uc815 \uc0c1\ud0dc\uc5d0\uc11c VNC SSH Tunneling","author":"litcoder","date":"2026\ub144 5\uc6d4 20\uc77c","format":false,"excerpt":"VNC SSH Tunneling\uc5d0 \ub300\ud574 \ub2e4\ub8ec \uc801\uc774 \uc788\uc5c8\ub294\ub370, macOS\uc5d0\uc11c \uae30\ubcf8 \uc81c\uacf5\ub418\ub294 Screen Sharing \uac19\uc740 app\uc73c\ub85c \uc811\uc18d\ud558\ub824\uba74 SSH \ud130\ub110\ub9c1\uc744 \uc124\uc815\ud558\ub294 GUI\uac00 \uc5c6\uc73c\ubbc0\ub85c \ud574\ub2f9 \ud3ec\uc2a4\ud305\uc758 \"SSH Tunneling \uc124\uc815\uc774 \uc5c6\ub294 \uacbd\uc6b0\" \ud56d\ubaa9\uc758 \uc548\ub0b4\uc5d0 \ub530\ub77c \ub2e4\uc74c\uacfc \uac19\uc740 \uba85\ub839\uc5b4\ub97c \ud130\ubbf8\ub110\uc5d0 \uc785\ub825\ud558\uace0 localhost\uc758 5999\ubc88 \ud3ec\ud2b8\ub85c \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud558\uba74 \ub41c\ub2e4\uace0 \ud588\uc5c8\ub2e4. # SSH \ud130\ub110\ub9c1. # 22\ubc88 SSH \ud3ec\ud2b8\ub97c \ud1b5\ud574\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/05\/macos_screen_sharing_vnc_settings.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":4548,"url":"https:\/\/litcoder.com\/?p=4548","url_meta":{"origin":1545,"position":5},"title":"Emacs: Buffer is read-only","author":"litcoder","date":"2026\ub144 7\uc6d4 8\uc77c","format":false,"excerpt":"\uc6d0\uaca9 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud574\uc11c \uac1c\ubc1c\uc744 \ub9c8\uce58\uace0 \ucee4\ubc0b\uc744 \uc815\ub9ac\ud558\ub824\uace0 git rebase -i <base_commit>\ub97c \ud558\ub294\ub370 \"Buffer is ready-only\"\uac00 \ub728\uba74\uc11c rebase\ub97c \uc218\ud589\ud560 \uc218 \uc5c6\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. \ub85c\uceec\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 Emacs\uc5d0\uc11c\ub294 \uc774\ub7f0 \ubb38\uc81c\ub97c \uacaa\uc740 \uc801\uc774 \uc5c6\uc5c8\ub294\ub370 \uc6d0\uaca9 \uc11c\ubc84\uc5d0\uc11c\ub294 git-rebase-todo \ubc84\ud37c\ub97c \uc77d\uae30 \uc804\uc6a9\uc73c\ub85c \uc77d\uc5b4 \ubc84\ub9ac\ub294 \ubb38\uc81c\uac00 \uc0dd\uae30\ub294 \uac83\uc774\ub2e4. \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294 \ubc29\ubc95\uc740 \ub450\uac00\uc9c0 \uc815\ub3c4\uac00 \uc788\ub2e4. \ubc29\ubc951: Read-only\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/emacs_git_rebase_ro_error.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/emacs_git_rebase_ro_error.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/emacs_git_rebase_ro_error.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1545"}],"version-history":[{"count":2,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1545\/revisions"}],"predecessor-version":[{"id":4137,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1545\/revisions\/4137"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}