{"id":30770,"date":"2022-07-12T18:07:10","date_gmt":"2022-07-12T18:07:10","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=30770"},"modified":"2022-07-12T18:07:10","modified_gmt":"2022-07-12T18:07:10","slug":"integrated-terminal-in-visual-studio-new-ssh-integration-for-linux-targeting","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/integrated-terminal-in-visual-studio-new-ssh-integration-for-linux-targeting\/","title":{"rendered":"Integrated Terminal in Visual Studio: New SSH integration for Linux targeting"},"content":{"rendered":"<p><span class=\"TextRun SCXW224106047 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW224106047 BCX8\">In the <\/span><\/span><a class=\"Hyperlink SCXW224106047 BCX8\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW224106047 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW224106047 BCX8\" data-ccp-charstyle=\"Hyperlink\">latest version of Visual Studio<\/span><\/span><\/a><span class=\"TextRun SCXW224106047 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW224106047 BCX8\">, users are <\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">now <\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">able<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\"> to <\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">leve<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">rage<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\"> the integrated terminal to access their remote targets<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\"> when developing for <\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">remote machines from Windows<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">. This <\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">updated terminal<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\"> includes an interactive SSH shell.<\/span> <span class=\"NormalTextRun SCXW224106047 BCX8\">I<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\">t<\/span><span class=\"NormalTextRun SCXW224106047 BCX8\"> can be accessed by going to View-&gt;Terminal in Visual Studio<\/span><span class=\"NormalTextRun CommentStart SCXW224106047 BCX8\">.<\/span><\/span><span class=\"EOP SCXW224106047 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-093950.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-30775\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-093950.png\" alt=\"New SSH Integrated Terminal in Visual Studio\" width=\"1023\" height=\"574\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-093950.png 1023w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-093950-300x168.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-093950-768x431.png 768w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW167861519 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW167861519 BCX8\">Now, <\/span><span class=\"NormalTextRun CommentStart SCXW167861519 BCX8\">instead of <\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">starting an SSH session inside of <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW167861519 BCX8\">PowerShell<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> or WSL and <\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">having to re-authenticate<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">,<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> you can select one of your existing connections with one click<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">. The <\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">integrated terminal pulls from the stored connections <\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">established<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> in your Connection Manager<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">. You only <\/span><span class=\"NormalTextRun AdvancedProofingIssueV2Themed SCXW167861519 BCX8\">have to<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> authenticate once when you add a stored connection<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> and <\/span><span class=\"NormalTextRun CommentStart SCXW167861519 BCX8\">the<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">n this authentication information will remain stored in Visual Studio<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">,<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> allowing for<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\"> less downtime spent managing SSH<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">\u00a0connections that have timed out<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">.<\/span><span class=\"NormalTextRun SCXW167861519 BCX8\">\u00a0<\/span><\/span><span class=\"EOP SCXW167861519 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094401.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-30776\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094401.png\" alt=\"Connection Manager in Visual Studio\" width=\"753\" height=\"490\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094401.png 753w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094401-300x195.png 300w\" sizes=\"(max-width: 753px) 100vw, 753px\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW3747466 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW3747466 BCX8\">In the upper left corner<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\"> of the integrated terminal<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">, <\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">you can click on the SSH<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">\u00a0connection selected and see <\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">the profile <\/span><span class=\"NormalTextRun CommentStart SCXW3747466 BCX8\">dropdown<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\"> entrie<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">s <\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">available that show connections <\/span><span class=\"NormalTextRun SCXW3747466 BCX8\">enumerated<\/span><span class=\"NormalTextRun SCXW3747466 BCX8\"> from your Connection Manager.<\/span><\/span><span class=\"EOP SCXW3747466 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-30778\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626.png\" alt=\"SSH dropdown in Integrated Terminal\" width=\"1029\" height=\"562\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626.png 1029w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626-300x164.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626-1024x559.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2022\/07\/Screenshot-2022-07-12-094626-768x419.png 768w\" sizes=\"(max-width: 1029px) 100vw, 1029px\" \/><\/a><\/p>\n<p><span data-contrast=\"auto\">When you click on a connection from the dropdown, the terminal will spawn a new terminal instance that will remain docked next to your current terminal instance in the tabs below.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Additionally, the new integrated terminal now supports manipulating files, running background tasks, configuring your remote system, and testing your deployed code all from inside of VS instead of having to use an external SSH client. This terminal also supports color and command sequences, so for example, copy, paste, and find shortcuts will work, as well as interactive programs like vim.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h4>Send us your feedback!<\/h4>\n<p><span class=\"TextRun SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW169529413 BCX8\">Download the latest version of Visual Studio and give the latest integrated terminal a try. <\/span><span class=\"NormalTextRun CommentStart SCXW169529413 BCX8\">Let us know <\/span><span class=\"NormalTextRun SCXW169529413 BCX8\">your thoughts,<\/span><span class=\"NormalTextRun SCXW169529413 BCX8\"> and whether there is anything <\/span><span class=\"NormalTextRun SCXW169529413 BCX8\">you\u2019d<\/span><span class=\"NormalTextRun SCXW169529413 BCX8\"> like to see. <\/span><\/span><span class=\"TextRun Highlight SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\">\u202f<\/span><\/span><span class=\"TextRun Highlight SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\">We are <\/span><span class=\"NormalTextRun SCXW169529413 BCX8\">very interested<\/span><span class=\"NormalTextRun SCXW169529413 BCX8\"> in your feedback to continue to improve this experience. The comments below are open, or you can find us on Twitter (<\/span><\/span><a class=\"Hyperlink SCXW169529413 BCX8\" href=\"https:\/\/twitter.com\/visualc\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Highlight Underlined SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\" data-ccp-charstyle=\"Hyperlink\">@VisualC<\/span><\/span><\/a><span class=\"TextRun Highlight SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\">), or via email at\u202f<\/span><\/span><a class=\"Hyperlink SCXW169529413 BCX8\" href=\"mailto:visualcpp@microsoft.com\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Highlight Underlined SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\" data-ccp-charstyle=\"Hyperlink\">visualcpp@microsoft.com<\/span><\/span><\/a><span class=\"TextRun Highlight SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\">.<\/span><span class=\"NormalTextRun SCXW169529413 BCX8\"> To open a bug, please see <\/span><\/span><a class=\"Hyperlink SCXW169529413 BCX8\" href=\"https:\/\/developercommunity.visualstudio.com\/report?space=8&amp;entry=problem\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW169529413 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW169529413 BCX8\" data-ccp-charstyle=\"Hyperlink\">Visual Studio Feedback<\/span><\/span><\/a><span class=\"EOP SCXW169529413 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the latest version of Visual Studio, users are now able to leverage the integrated terminal to access their remote targets when developing for remote machines from Windows. This updated terminal includes an interactive SSH shell. It can be accessed by going to View-&gt;Terminal in Visual Studio.\u00a0 Now, instead of starting an SSH session inside [&hellip;]<\/p>\n","protected":false},"author":85413,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,279],"tags":[],"class_list":["post-30770","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-linux"],"acf":[],"blog_post_summary":"<p>In the latest version of Visual Studio, users are now able to leverage the integrated terminal to access their remote targets when developing for remote machines from Windows. This updated terminal includes an interactive SSH shell. It can be accessed by going to View-&gt;Terminal in Visual Studio.\u00a0 Now, instead of starting an SSH session inside [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/30770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/85413"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=30770"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/30770\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=30770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=30770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=30770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}